Point cloud attribute encoding and decoding method and device

ABSTRACT

In a point cloud attribute decoding method and device, Hilbert order is used as the coding order of point cloud attributes. The nearest neighbor points in the three-dimensional space of the current point are found in several points before the current point and are used as the prediction points of the current point. In the worst case, the distance in the three-dimensional space of the two points with a distance of n on the Hilbert order is less than or equal to n 1/2 , while the distance in the three-dimensional space of the two points with a distance of n on the Morton order may be greater than the maximum dimension length of the point cloud. The average distance between K points in the preceding order and the current point in Hilbert sequence is smaller than that between K points in the preceding order and the current point in Morton sequence.

TECHNICAL FIELD

The present disclosure belongs to the field of point cloud coding, andparticularly relates to a point cloud attribute decoding method anddevice based on a new processing order.

BACKGROUND ART

Supporting the application of virtual reality (VR) AR, Augmented Reality(AR) is the next important challenge of media technology in the 21stcentury. These applications, together with 3D data acquisition, 3Drendering and computer vision, make it possible to realize the emergingimmersive media experience in the near future. Point cloud is an idealrepresentation of three-dimensional scenes and objects. It consists of agroup of points that are irregularly distributed and unconnected inthree-dimensional space. Each point that constitutes a point cloud hasgeometric information and optional attribute information. Among them,geometric information is used to express the structure ofthree-dimensional objects, which is composed of three-dimensionalposition coordinates X, Y, and Z; Attribute information is used toexpress the surface attributes of three-dimensional scenes or objects.Common attribute information includes color, reflectivity, normal, andtransparency. The data scale of point cloud is extremely huge. Forexample, a point cloud with high quality to express three-dimensionalobjects has hundreds of thousands to millions of points. In order tofacilitate the storage and transmission of point cloud data, it isnecessary to compress point cloud data.

Most point cloud compression algorithms are based on voxelized pointcloud, which has the advantages of convenient processing andcontrollable accuracy. A voxelized point cloud is a point cloud whosepointing position coordinates are quantized into a cube grid, and thecoordinates of the midpoint of each cube grid represent the coordinatesof the midpoint of the cube grid, so only the index of the cube grid isneeded to encode the position information of the point cloud, and theposition accuracy can be controlled by the size of the cube grid.

At present, most point cloud attribute coding is based on Morton orderto find several nearest neighbors, and then the attributes of thesenearest neighbors are weighted to predict the attribute value of thecurrent point. Among them, Morton order is the point order obtained bysorting the points in the point cloud according to their Morton codes,and the Morton codes of each point can be obtained from the positioncoordinates of the points. Specifically, it is obtained by alternatelyplacing the coordinates of each dimension of the points according toeach bit of the binary bit. In [1], the nearest neighbor points are tobe found based on Morton order. If the number of LOD (level of detail)is 1, three points closest to the current point will be found fromseveral coded points before the current point under Morton order, andthen the weighted average of the attribute values of these points willbe used to predict the attribute values of the current point. If thenumber of LOD (level of detail) is greater than 1, Then the first pointwhose Morton code is greater than the Morton code of the current pointwill be found from the points in the coded level of detail arranged inMorton order, and then three points closest to the current point will befound around this found point, and the weighted average of the attributevalues of these points will be used to predict the attribute values ofthe current point. In [2], attribute prediction is also based on Mortoncode. For sparse point clouds, the weighted average of the attributevalues of the first three points of the current point in Morton order isdirectly used to predict the attribute values of the current point. Fordense point clouds, the points that are coplanar and collinear with thecurrent point are first found from the first several points of thecurrent point in Morton order. If they are found, the weighted averageof the attribute values of these coplanar and collinear points is usedto predict the attribute values of the current point, otherwise, theprevious points of the current point in Morton order are directly used.

Theoretically, the closer the three-dimensional distance between thepredicted point and the current point is, the stronger the correlationbetween the predicted point's attributes and the current point'sattributes is, the more accurate the attribute prediction is, and thelower the required code rate under the condition of constant distortionis. Since the three-dimensional spatial distance between adjacent orsimilar points under the Morton order will periodically jump withdifferent amplitudes, the three-dimensional spatial distance betweenadjacent points under the Morton order will periodically change fromnear to far. Therefore, the Morton code has poor spatial neighborcharacteristics, so the nearest point found by the nearest neighborsearch with the Morton order will not be ideal.

Hilbert curve is a continuous fractal space filling curve, also known asHilbert space filling curve. It was first discovered by Germanmathematician David Hilbert in 1891, and it can map high-dimensionalspace to one dimension. Hilbert curve has good spatial neighborhoodcharacteristics. Hilbert's spatial neighborhood characteristics meanthat data points that are similar in one-dimensional space are alsosimilar in high-dimensional space. Because of its spatial neighborhood,Hilbert curve and its discrete approximation are widely used. Forexample, it is widely used in database indexing, memory management,image processing, and dynamic load balancing. This disclosure uses thediscrete approximation of Hilbert curve in three-dimensional space.

SUMMARY

For the shortcoming that the three-dimensional space distance beforeadjacent points in Morton order will periodically jump, the presentdisclosure proposes a point cloud attribute decoding method and devicebased on a new processing order to further improve the coding efficiencyof point cloud attributes. Hilbert order is used as the coding order ofpoint cloud attribute. The nearest neighbors in the three-dimensionalspace of the current point are found from several points in thepreceding of the current point in Hilbert order, and these nearestneighbors are used as the prediction points of the current point.Because the similar points in Hilbert order are also similar inthree-dimensional space, in particular, in the worst case, the distancebetween two points in three-dimensional space with distance n on Hilbertorder is less than or equal to and the distance between two points onMorton order with distance n in three-dimensional space may be greaterthan the maximum value of point cloud dimension, and when k is small,the average distance between the current point and the current point inHilbert order is smaller than that of the current point in Morton order.Therefore, Hilbert order can be used to find the neighbor points thatare more similar to the current point in three-dimensional space, sothat the attribute values of the predicted points are more relevant tothe attribute values of the current point, and then the codingefficiency of point cloud attributes can be improved.

The first purpose of the disclosure is to provide a point cloudattribute decoding method based on a new processing order, whichincludes the following contents:

-   -   The weighted average of the reconstructed attribute values of        the preceding decoding points under Hilbert order is used as the        attribute prediction value of the current point, wherein Hilbert        order is the point order obtained by sorting the points in the        point cloud from small to large or from large to small according        to their corresponding Hilbert code values;    -   Decoding the attribute residual value of the current point from        the bitstream;    -   According to the attribute prediction value of the current point        and the decoded attribute residual value, the reconstructed        attribute value of the current point is obtained.

Preferably, the point cloud attribute decoding method based on the newprocessing order is characterized in that the weighted average of thereconstructed attribute values of the preceding decoding points underHilbert order comprises:

-   -   N decoding points in the first order under Hilbert order are        used as the attribute prediction points of the current point,        where n is a natural number;    -   The weighted average of the reconstructed attribute values of        these n attribute prediction points is used as the attribute        prediction value of the current point.

Preferably, the point cloud attribute decoding method based on the newprocessing order is characterized in the weighted average of thereconstructed attribute values of the preceding decoding points underHilbert order comprises:

-   -   Use n points closest to the current point from L points in the        preceding of Hilbert order as the attribute prediction points of        the current point, where L is a natural number greater than 0        and n is a natural number;    -   The weighted average of the reconstructed attribute values of        these n attribute prediction points is used as the attribute        prediction value of the current point.

Preferably, the point cloud attribute decoding method based on the newprocessing order is characterized in that the weighted average of thereconstructed attribute values of the preceding decoding points underHilbert order comprises:

-   -   Using coplanar points of the current point and collinear points        of the current point among L numbered preceding points in the        Hilbert order as prediction points of attribute of the current        point, wherein each of the coplanar points is the point located        in its cube that has a common surface with the cube where the        current point is located, each of the collinear points is the        point located in its cube that has a common edge with the cube        where the current point located, and L is a natural number        greater than 0;    -   Weight coplanar points and collinear points ω_(pl) and ω_(po),        in which ω_(pl) and ω_(po) are real numbers greater than or        equal to 0, ω_(pl) is greater than ω_(po);    -   The weighted average of reconstructed attribute values from        coplanar points and collinear points is used as the attribute        prediction value of the current point.

Preferably, the point cloud attribute decoding method based on the newprocessing order can also have another implementation form, which ischaracterized by comprising:

-   -   Constructing L-level level of detail        (LOD_(i))_(i=0,1 . . . L−1), among which, LOD_(i) is a subset of        the reconstructed point cloud, LOD_(i)⊂LOD_(j)(i<j), LOD_(L−1)        is the whole reconstructed point cloud, where L is a natural        number greater than 0;    -   Obtain n attribute prediction points of the current point, and        make (R_(i)=LOD_(i)−LOD_(i−1))_(i=1 . . . L−1), R₀=LOD₀, for a        point P of Hilbert code H in R_(i), Select n points closest to        point P from LOD_(i−1) Hilbert code in the range of [H₁,        H₂](H₁≤H≤H₂). The nearest n points as the attribute prediction        points of the current point, where n is a natural number;    -   The weighted average of the reconstructed attribute values using        the n attribute prediction points is taken as the attribute        prediction value of the current point;    -   Decoding the attribute residual value of the current point from        the bitstream;    -   According to the attribute prediction value of the current point        and the decoded attribute residual value, the reconstructed        attribute value of the current point is obtained.

The expression method in the present disclosure is agreed as follows:

-   -   1. The 3D geometric coordinates of points in the point cloud are        marked as (X₁, X₂, X₃)_(N), where X₁, X₂, X₃ are respectively        expressed by binary expansion as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=

(x ₃ ¹ x ₃ ² . . . x ₃ ^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

The left side of binary expansion represents high-bit and the right siderepresents low-bit, where N is an integer greater than 0, indicating thecoordinate bit width.

-   -   2. Hilbert code of point HCode_(N) represented in binary as        C_(1,m) ₁ C_(2,m) ₂ . . . C_(i,m) _(i) . . . C_(p-1,m) _(p−1)        C_(p,m) _(p) , in which the Hilbert code subcode C_(i,m) _(i) is        binary number of m_(i) bits.

Preferably, the point cloud attribute decoding method based on the newprocessing order includes the following steps:

The three-dimensional geometric coordinates of reconstructed points inthe point cloud are processed sequentially from high-bit to low-bit.(X₁, X₂, X₃)_(N) The binary bits of, where the firstiSecondaryprocessing: according to the three-dimensional geometric coordinates ofthe reconstructed point (3*m_(i)) Binary bits, generate thecorresponding Hilbert code subcode C_(i,m) _(i) :

Process sequentially binary bits of the three-dimensional geometriccoordinates (X₁, X₂, X₃)_(N) of reconstructed points in the point cloudfrom high-bit to low-bit, where the i^(th) time processing: generate thecorresponding subcode C_(i,m) _(i) of Hilbert code according to(3*m_(i)) binary bits of the three-dimensional geometric coordinates ofthe reconstructed point:

C _(i,m) _(i) =ConvertCode^(m) ^(i) (x ₁ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺¹ x ₁ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺² . . . x ₁ ^(m) ¹^(+m) ² ^(. . . +m) ^(i) ,

x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺¹ x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺² . . . x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i) ,

x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺¹ x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺² . . . x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i) ,state_(i)),

state_(i+1)=ConvertState^(m) ^(i) (x ₁ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1)⁺¹ x ₁ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺² . . . x ₁ ^(m) ¹ ^(+m) ²^(. . . +m) ^(i) ,

x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺¹ x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺² . . . x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i) ,

x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺¹ x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺² . . . x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i) ,state_(i)),

Among them, ConvertCode^(m) ^(i) function generates the correspondingHilbert code subcode according to the status state of the binary bit andthe binary bit in this processing. There are different ConvertCode^(m)^(i) when m_(i) is different. The mechanism of generating Hilbert codesubcodes by ConvertCode^(m) ^(i) is based on the shape of the Hilbertsub-curve determined by state and the serial number on the Hilbertsub-curve determined by the binary bits in this processingConvertState^(m) ^(i) function generates the state state_(i+1) of thebinary bit in the next processing according to the status state of thebinary bit and the binary bit in this processing. ConvertCode^(m) ^(i)is different when m_(i) is different. The mechanism thatConvertState^(m) ^(i) generates the state state_(i+1) of binary bit inthe next processing according to the shape of the Hilbert sub-curvedetermined by state and the serial number on the Hilbert sub-curvedetermined by the processed binary bit. The state corresponding to thebinary bit corresponds to the shape of the Hilbert sub-curvecorresponding to the binary bit, and a total of p treatments wereperformed, and the sum of m_(i) of each treatment is n, that is

Σ_(i=1) ^(p) m _(i) =N;

According to the Hilbert order from small to large or from large tosmall, the reconstruction attribute information of point cloud isdecoded from the bitstream in order.

A second object of the present disclosure is to provide a point cloudattribute decoding device based on a new processing order, whichincludes:

-   -   An attribute prediction value acquisition module, wherein the        input of the module is the reconstructed point cloud, and the        output is the attribute prediction value of the current point,        and the module uses the weighted average of the reconstructed        attribute values of the preceding decoding points in Hilbert        order as the attribute prediction value of the current point,        wherein the Hilbert order is the point order obtained by sorting        the points in the point cloud from small to large or from small        to small according to their corresponding Hilbert code values;    -   A module of decoding attribute residual: the input of this        module is the bitstream and the output is the attribute        residual, and this module decodes the attribute residual value        of the current point from the bitstream;    -   A module of acquiring reconstructed attribute value: the input        of this module is the attribute residual and the attribute        prediction value, and the output is the reconstructed attribute        value of the current point, and the module obtains the        reconstructed attribute value of the current point according to        the attribute prediction value of the current point and the        decoded attribute residual value.

Preferably, the point cloud attribute decoding device based on the newprocessing order is characterized in that the weighted average of thereconstructed attribute values of the preceding decoding points underHilbert order comprises:

-   -   A module of acquiring attribute prediction point: the input of        the module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point, and the        module uses N decoded points under Hilbert order as the        attribute prediction points of the current point, where n is a        natural number;    -   A module of calculating attribute prediction value: the input of        this module is the attribute prediction point, and the output is        the attribute prediction value of the current point, and the        module uses the weighted average of the reconstructed attribute        values of these n attribute prediction points as the attribute        prediction value of the current point.

Preferably, the point cloud attribute decoding device based on the newprocessing order is characterized in the weighted average of thereconstructed attribute values of the preceding decoding points underHilbert order comprises:

-   -   A module of acquiring attribute prediction point: the input of        the module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point, and the        module uses n points closest to the current point in the top L        points of Hilbert order as the attribute prediction points of        the current point, where L is a natural number greater than 0        and N is a natural number;    -   A module of calculating attribute prediction value: the input of        this module is the attribute prediction point, and the output is        the attribute prediction value of the current point, and the        module uses the weighted average of the reconstructed attribute        values of these n attribute prediction points as the attribute        prediction value of the current point.

Preferably, the point cloud attribute decoding device based on the newprocessing order is characterized in that the weighted average of thereconstructed attribute values of the preceding decoding points in theHilbert order comprises:

-   -   A module of acquiring attribute prediction point: the input of        the module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point, and the        module uses the coplanar points and collinear points of the        current point among the preceding L points in the Hilbert order        as the prediction points of attribute of the current point,        wherein each of the coplanar points is the point located in its        cube that has a common surface with the cube where the current        point is located, and each of the collinear points is the point        located in its cube that has a common edge with the cube where        the current point is located, and L is a natural number greater        than 0;    -   A module of weighting attribute prediction point: the input of        this module is prediction point of attribute, and the output is        prediction point of attribute with weight, and this module gives        coplanar points and collinear points weights ω_(pl) and ω_(po),        in which ω_(pl) and ω_(po) are real number greater than or equal        to 0, ω_(pl) is bigger than ω_(po);    -   A module of calculating attribute prediction value: the input of        this module is the weighted attribute prediction point, and the        output is the attribute prediction value of the current point.        This module uses the weighted average of the reconstructed        attribute values of coplanar points and collinear points as the        attribute prediction value of the current point.

Preferably, the device of decoding point cloud attribute based on thenew processing order can also have another implementation form, whosecharacteristics include:

-   -   A module of constructing LOD: the input of this module is the        reconstructed point cloud geometry, and the output of this        module is the constructed LOD. This module builds        (LOD_(i))_(i=0,1 . . . L−1) as L-level detail level, among        which, LOD_(i) is a subset of the reconstructed point cloud,        LOD_(i)⊂LOD_(j) (i<j), LOD_(L−1) is the whole reconstructed        point cloud, where L is a natural number greater than 0;    -   A module of acquiring attribute prediction point: the input of        the module is the constructed LOD, and the output is the        attribute prediction point of the current point, and the module        acquires n attribute prediction points of the current point,        make (R_(i)=LOD_(i)−LOD_(i−1))_(i=1 . . . L−1), R₀=LOD₀, for a        point P of Hilbert code H in R_(i), Select n points closest to        point P from LOD_(i−1) Hilbert code in the range of [H₁,        H₂](H₁≤H≤H₂). The nearest n points as the attribute prediction        points of the current point, where n is a natural number;

A module of calculating attribute prediction value: the input of thismodule is the attribute prediction point, and the output is theattribute prediction value of the current point, and the module uses theweighted average of the reconstructed attribute values of these nattribute prediction points as the attribute prediction value of thecurrent point;

A module of decoding attribute residual: the input of this module is thebitstream and the output is the attribute residual, and this moduledecodes the attribute residual value of the current point from thebitstream;

A module of acquiring reconstructed attribute value: the input of thismodule is the attribute residual and the attribute prediction value, andthe output is the reconstructed attribute value of the current point,and the module obtains the reconstructed attribute value of the currentpoint according to the attribute prediction value of the current pointand the decoded attribute residual value.

Preferably, the method of decoding point cloud attribute based on thenew processing order includes the following steps:

A module of generating Hilbert code: the input of this module is thereconstructed geometric coordinates of the point cloud, and the outputis the Hilbert code corresponding to the geometric coordinates of thepoint cloud. This module sequentially processes binary bits of thethree-dimensional geometric coordinates (X₁, X₂, X₃)_(N) ofreconstructed points in the point cloud from high-bit to low-bit, wherethe ith time processing: generate the corresponding subcode C_(i,m) _(i)of Hilbert code according to (3*m_(i)) binary bits of thethree-dimensional geometric coordinates of the reconstructed point:

C _(i,m) _(i) =ConvertCode^(m) ^(i) (x ₁ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺¹ x ₁ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺² . . . x ₁ ^(m) ¹^(+m) ² ^(. . . +m) ^(i) ,

x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺¹ x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺² . . . x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i) ,

x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺¹ x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺² . . . x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i) ,state_(i)),

state_(i+1)=ConvertState^(m) ^(i) (x ₁ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1)⁺¹ x ₁ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺² . . . x ₁ ^(m) ¹ ^(+m) ²^(. . . +m) ^(i) ,

x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺¹ x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺² . . . x ₂ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i) ,

x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i−1) ⁺¹ x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m)^(i−1) ⁺² . . . x ₃ ^(m) ¹ ^(+m) ² ^(. . . +m) ^(i) ,state_(i)),

ConvertCode^(m) ^(i) function generates the corresponding subcode ofHilbert code according to the state state_(i) of the binary bit and thebinary bit in this processing. ConvertCode^(m) ^(i) is differernt whenm_(i) is different. The mechanism that ConvertCode^(m) ^(i) generatessubcode of Hilbert code is: generate the corresponding subcode ofHilbert code according to the shape of the Hilbert sub-curve determinedby state state_(i) and the serial number on the Hilbert sub-curvedetermined by the binary bits in this processing. ConvertState^(m) ^(i)function generates the state state_(i+1) of the binary bit in the nextprocessing according to the state state_(i) of the binary bit and thebinary bit in this processing. ConvertCode^(m) ^(i) is diffferent whenm_(i) is different. The mechanism that ConvertState^(m) ^(i) generatesthe state state_(i+1) of binary bit in the next processing is: todetermine the state state_(i+1) of binary bit in the next processingaccording to the shape of the Hilbert sub-curve determined by state andthe serial number on the Hilbert sub-curve determined by the binary bitin this processing. The state corresponding to the binary bitcorresponds to the shape of the Hilbert sub-curve corresponding to thebinary bit one by one, and a total of p processings are performed, andthe sum of each processing m_(i) is n, that is

Σ_(i=1) ^(p) m _(i) =N;

A module of decoding attribute: the input is the attribute bitstream,and the output is the reconstructed point cloud attribute in thismodule. The module sequentially decodes the bitstream to get thereconstructed point cloud attribute information according to the orderof Hilbert from small to large or from large to small.

Because the used Hilbert order has the best spatial neighborcharacteristics, neighbor points closer to the current point in threedimensions can be found with greater probability as the predictionpoints. Thus the attribute values of the prediction points are morerelevant to the attribute values of the current point. Then we achievethe goal to improve the compression efficiency of point cloud attributeson the premise of maintaining the complexity.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to explain the technical scheme in the embodiment of theapplication or the prior art more clearly, the following will brieflyintroduce the drawings needed in the description of the embodiment orthe prior art Obviously, the drawings in the following description forma part of this application, and the illustrative embodiments of thedisclosure and their descriptions are used to explain the disclosure,and do not constitute an improper limitation of the disclosure.

For ordinary technicians in this field, other drawings can be obtainedaccording to these drawings without creative work.

FIG. 1 is a schematic diagram of a three-dimensional Hilbert curveaccording to the present disclosure.

FIG. 2 is an algorithm flow chart of an embodiment of the presentdisclosure.

FIG. 3 is a schematic diagram of the device according to the patentembodiment of the disclosure.

FIG. 4 shows 12 Hilbert states related to the present disclosure.

FIG. 5 is a schematic diagram of the device according to the patentembodiment of the disclosure.

DETAILED DESCRIPTION OF THE DISCLOSURE

In order to further understand the present disclosure, the preferredembodiments of the present disclosure are described below with referenceto examples, but it should be understood that these descriptions areonly for further explaining the features and advantages of the presentdisclosure, and are not a limitation of the claims of the presentdisclosure.

For the convenience of expression, the following definitions are made:

For n binary numbers X₁, X₂, . . . , X_(n), X₁X₂ . . . X_(n) means toput this n binary numbers are bitwise spliced together, and the numberon the left is high and the number on the right is low.

If each dimension of a D-dimensional hypercube is divided equally by2^(n), then the hypercube is called a D-dimensional n-order hypercube,expressed by HC_(n) ^(D), let (X₁, X₂ . . . X_(d) . . . X_(D)) denotethe coordinates of the smallest sub-cube in D-dimensional n-orderhyper-cube, where, 0≤X_(d)<2^(n), 1≤d≤D. A curve passing through thesmallest sub-cube in HC_(n) ^(D) is called a D-dimensional n-orderHilbert curve denoted by H_(n) ^(D). The scan order index of eachminimal sub-cube over H_(n) ^(D) in a D-dimensional n-order hypercubeHC_(n) ^(D) is called the Hilbert code of the minimal sub-cube, which isrepresented by HCode_(n) ^(D), where HCode_(n) ^(D) starts from 0.

The order of scanning the smallest cube of the D-dimensional 1-orderHilbert curve in the D-dimensional 1-order hyper-cube H₁ ^(D) is theorder of gray codes. For example, for three-dimensional, the gray codesof the sub-cubes with the scanning order of 0,1, 2, 3, 4, 5, 6 and 7 are000, 001, 011, 010, 110, 111, 101 and 100, which are exactly thecoordinates of the sub-cubes. Therefore, the Hilbert code of theD-dimensional 1-order curve can be generated according to the gray code.

Symbols (x¹x² . . . x^(K))_(b) are used to express K bits binary number,where 0≤x^(k)<b, 1≤k≤K.

Gray code coding function is

G((x ¹ x ² . . . x ^(K))₂)=(g ¹ g ² . . . g ^(K))₂,

(g¹g² . . . g^(K))² is the Gray code of (x¹x² . . . x^(K))₂, thecalculation formula is as follows:

(g ¹ g ² . . . g ^(K))²=(x ¹ x ² . . . x ^(K))₂∧((x ¹ x ² . . . x^(K))²>>1)

Where ∧ denotes exclusive or operators, >> denotes the right shiftoperator.

The decoding function of Gray code is

DG((g ¹ g ² . . . g ^(K))₂)=(x ¹ x ² . . . x ^(K))₂

Where x^(k)=DG^(k)((g¹g² . . . g^(K))₂)

The calculation formula is as follows

x¹ = DG₁((ℊ¹ℊ²…ℊ^(K))₂) = ℊ¹,${x^{k} = {{{DG}_{k}\left( \left( {{\mathcal{g}}^{1}{\mathcal{g}}^{2}{\ldots\mathcal{g}}^{K}} \right)_{2} \right)} = {\left( {\left( {\sum\limits_{i = 1}^{k - 1}{\mathcal{g}}^{i}} \right){mod}2} \right) \land {\mathcal{g}}^{k}}}},$2 ≤ k ≤ K

Hilbert curve is self-similar, and the generation of the curve is arecursive process. The Hilbert curve of order n+1 needs the Hilbertcurve of order N, specifically, the position corresponding to the 2^(D)sub-cubes of the D-dimensional 1-order hyper-cube is regarded as the2^(D) quadrant of the D-dimensional space, then for the n+1-orderHilbert curve, it is necessary to copy the n-order Hilbert curvedirectly or put it in a quadrant of the n+1-order Hilbert curve aftermirror flipping, and then connect the starting point and end point ofthe n-order Hilbert curve of the adjacent quadrant or the n-orderHilbert curve after mirror flipping, so as to form the n+1-order curve.There are two main flips used: mirror flip 1 and mirror flip 2. Bothflips are mirror flips along a hyperplane, where

Mirror flip 1 is along the hyperplane X_(i)−X_(j)=0 to flip. Exchangethe coordinates between X_(i) and X_(j) needed. X_(i)↔X_(j) representsthe exchange of coordinates.

Mirror flip 2 is along the hyperplane

$X_{i} = \frac{2^{n} - 1}{2}$

to flip, the coordinate X_(i) needs to be exchanged to be 2^(n)−1−X_(i).

These two flips are order-preserving, that is, the relative position ofeach point on the curve remains unchanged before and after flipping.

Hilbert sub-curve is directional, and the direction can be uniquelydetermined by the coordinates of the starting point and the endingpoint. There is only one different bit between the coordinates of thestarting point and the ending point. For example, the starting pointcoordinate of the three-dimensional first-order Hilbert curve is DG(0)=000, and the ending point coordinate is DG (7)=100. B^(q) and E^(q)are used to represent respectively the starting coordinates and endingcoordinates of the sub-curves of the D-dimensional 1-order in thequadrant q (as mentioned above, the coordinates of the quadrant q can beobtained by the gray code G(q)). Then for three dimensions, there areB⁰=000, E⁰=010, B¹=000, E¹=100, B²=000, E²=100, B³=110, E³=111, B⁴=110,E⁴=111, B⁵=101, E⁵=001, B⁶=101, E⁶=001, B⁷=001, E⁷=011.

It can be determined by the coordinates of the starting point and theending point to turn each sub-curve into a line mirror image flipsimilar to the one-order curve.

It is three-dimensional space that counts in the following. That is:D=3, giving the three-dimensional coordinates (X₁, X₂, X₃) of a point,which is expanded in binary to

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=

(x ₃ ¹ x ₃ ² . . . x ₃ ^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

The mirror flip 1 of quadrant q

T ₁ ^(q)=(DG(0)∧DG(7))∧(B ^(q) ∧E ^(q)),0≤q≤7

The obtained 3 digits T₁ ^(q) above represents the flip rule of mirrorflip 1. The specific flip rule is as follows: there is only onedifferent bit between the coordinates of starting point and thecoordinates of ending point, so G(0)∧DG(7) and B^(q)∧E^(q) only onedigit 1. Therefore, there are only two 1 or all 0s in each binary bit ofT₁ ^(q), if the ith bit and jth bit of T₁ ^(q) is 1, then exchangecoordinates X_(i) and X_(j), 1≤i, j≤3.

The mirror flip 2 of quadrant q

T ₂ ^(q) =DG(0)∧B ^(q),0≤q≤7

The obtained 3 digits T₂ ^(q) represents the flip rule of mirror flip 2.The specific flip rule is as follows: if the ith bit of T₂ ^(q) is 1,setting X_(i)=2^(n)−1−X_(i), where n is the order of the curve to beflipped.

Hilbert coding is the process of calculating the Hilbert codeHCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)) according to the givencoordinates (X₁, X₂, X₃), where C_(n) is the 3-bit binary subcode ofeach layer, and n is taken from 1 to N to obtain C_(n) by the followingcalculation.

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the ith bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the ith bit and jth bit of T ₁ ^(C) ^(n) is 1,X _(i) ↔X_(j),1≤i,j≤3  4.

Embodiment 1

A method of decoding point cloud attribute based on a new processingorder in this embodiment, as shown in FIG. 2 , includes the followingcontents.

For the reconstructed point cloud geometry, the associated Hilbert codeis generated according to its three-dimensional spatial coordinates. Asmentioned above, for a point given three-dimensional coordinate (X₁, X₂,X₃), its coordinates are expanded in terms of binary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

The Hilbert code of the point (X₁, X₂, X₃) can be obtained by thefollowing process, HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)),where C_(n) is a 3-bit binary subcode, C_(n) is obtained by sequentiallytaking n from 1 to N through the following calculation

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the ith bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the ith bit and jth bit of T ₁ ^(C) ^(n) is 1,X _(i) ↔X_(j),1≤i,j≤3  4;

The attribute values of points in the point cloud are processed insequence according to Hilbert order, and the attribute values of thecurrent points are processed by the following steps: Use the weightedaverage of reconstructed attribute values of preceding decoding pointsin Hilbert order is as the attribute prediction value of the currentpoint, where Hilbert order is the point order obtained by sorting pointsin the point cloud from small to large or from large to small accordingto their corresponding Hilbert code values: use the first point P of thecurrent point in Hilbert order, let its attribute value=Â. That is, Â isthe attribute prediction value of the current point;

-   -   1) Decode the attribute residual value R of the current point        from the bitstream;

Obtain the reconstructed attribute value of the current point accordingto the attribute prediction value of the current point and the decodedattribute residual value, wherein the reconstructed attribute value ofthe current point is A=Â+R.

Embodiment 2

A method of decoding point cloud attribute based on a new processingorder in this embodiment includes: For the reconstructed point cloudgeometry, the associated Hilbert code is generated according to itsthree-dimensional spatial coordinates. As mentioned above, for a pointgiven three-dimensional coordinate (X₁, X₂, X₃), its coordinates areexpanded in terms of binary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

The Hilbert code of the point (X₁, X₂, X₃) can be obtained by thefollowing process, HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)),where C_(n) is a 3-bit binary subcode, C_(n) is obtained by sequentiallytaking n from 1 to N through the following calculation.

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the i ^(th) bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the i ^(th) bit and j ^(th) bit of T ₁ ^(C) ^(n) is 1,X_(i) ↔X _(j),1≤i,j≤3  4;

The attribute values of points in the point cloud are processed insequence according to Hilbert order, and the attribute values of thecurrent points are processed by the following steps:

-   -   1) N proceeding decoding points in Hilbert order are used as the        attribute prediction points of the current point, where n is a        natural number. n is taken to be 3 in this embodiment: use the        first three points of the current 128 points in Hilbert order,        P_(i)=(Z_(i), Y_(i), Z_(i)), i=1, 2, 3. Set their attribute        values (A_(i))_(i=1,2,3);    -   2) The weighted average of the reconstructed attribute values        from these three attribute prediction points is used as the        attribute prediction value of the current point: the weights        (ω_(i))_(i=1,2,3) of the three points are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Where d_(i) is the distance of point P_(i) from current point (X, Y, Z),the distance is at least one of the following distances:

-   -   Euclidean distance: d_(i)=−1a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of three points P₁, P₂, P₃, and take the        weighted average value as the attribute prediction value of the        current point Â,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   3) Decoding the attribute residual value of the current point        from the bitstream R;    -   4) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 3

A point cloud attribute decoding method based on a new processing orderin this embodiment includes the following contents.

For the reconstructed point cloud geometry, the corresponding Hilbertcode is generated according to its three-dimensional spatialcoordinates. As mentioned above, for a given three-dimensionalcoordinate (X₁, X₂, X₃), the coordinates of the point are expanded inbinary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

Hilbert code HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)) of thepoint (X₁, X₂, X₃) can be obtained by the following process, in whichC_(n) is a 3-bit binary subcode, C_(n) is obtained by taking n from 1 toN in order for the following calculation:

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the i ^(th) bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the i ^(th) bit and j ^(th) bit of T ₁ ^(C) ^(n) is 1,X_(i) ↔X _(j),1≤i,j≤3  4;

The attribute values of points in the point cloud are processed insequence according to Hilbert order, and the attribute values of thecurrent points are processed by the following steps:

-   -   1) N decoding points in the preceding of Hilbert order are        selected as the attribute prediction points of the current        point, where n is a natural number, and in this embodiment, n is        taken as 3: the first three points of the current 128 points        under Hilbert order P_(i)=(X₁, Y_(i), Z_(i)), i=1, 2, 3 are        selected. Set their property values as follows        (A_(i))_(i=1,2,3);    -   2) The weighted average of the reconstructed attribute values        from these three attribute prediction points is used as the        attribute prediction value of the current point: the weights        (ω_(i))_(i=1,2,3) of the three points are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

-   -   Where, d_(i) is the distance between the point P_(i) and the        current point (X, Y, Z), which can be at least one of the        following distances:    -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of three points P₁, P₂, P₃, and take the        weighted average value as the attribute prediction value of the        current point Â,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   3) Decoding the attribute residual value of the current point        from the bitstream R;    -   4) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 4

A point cloud attribute decoding method based on a new processing orderin this embodiment includes the following contents.

For the reconstructed point cloud geometry, the corresponding Hilbertcode is generated according to its three-dimensional spatialcoordinates. As mentioned above, for a given three-dimensionalcoordinate (X₁, X₂, X₃), the coordinates of the point are expanded inbinary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

Hilbert code HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)) of thepoint (X₁, X₂, X₃) can be obtained by the following process, in whichC_(n) is a 3-bit binary subcode, C_(n) is obtained by taking n from 1 toN in order for the following calculation:

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the i ^(th) bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the i ^(th) bit and j ^(th) bit of T ₁ ^(C) ^(n) is 1,X_(i) ↔X _(j),1≤i,j≤3  4;

The attribute values of points in the point cloud are processed insequence according to Hilbert order, and the attribute values of thecurrent points are processed by the following steps:

-   -   1) Using coplanar points of the current point and collinear        points of the current point among L numbered preceding points in        the Hilbert order as prediction points of attribute of the        current point, wherein each of the coplanar points is the point        located in its cube that has a common surface with the cube        where the current point is located, each of the collinear points        is the point located in its cube that has a common edge with the        cube where the current point located, and L is a natural number        greater than 0. In this embodiment, L is taken as 128: search        the first 128 points of the current point in Hilbert order for        coplanar and collinear points with the current point k, if k is        not 0, let these neighbors be (P_(i))_(i=1,2 . . . k), the        attribute value of each neighbor point is        (A_(i))_(i=1,2 . . . k);    -   2) Weight coplanar points and collinear points ω_(pl) and ω_(po)        respectively, in which ω_(pl) and ω_(po) are real number greater        than or equal to 0, ω_(pl) is greater than ω_(po), In this        embodiment, let ω_(pl)=2, ω_(po)=1, the weight of each neighbor        point is (w_(i))_(i=1,2 . . . k), in which the neighbor points        with a distance of 1 are given a weight of 2, and the neighbor        points with a distance of √{square root over (2)} are given a        weight of 2;    -   3) The weighted average of the reconstructed attribute value of        coplanar points and collinear points is used as the attribute        prediction value of the current point: the weighted average of        the attribute values of these neighboring points        (P_(i))_(i=1,2 . . . k) are calculated by using the following        formula, and take the weighted average value as the attribute        prediction value of the current point Â,

$Â = \frac{\sum_{i = 1}^{k}{\omega_{i}A_{i}}}{\sum_{i = 1}^{k}\omega_{i}}$

-   -   4) Decoding the attribute residual value of the current point        from the bitstream R;    -   5) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 5

A point cloud attribute decoding method based on a new processing orderin this embodiment includes the following contents.

For the reconstructed point cloud geometry, the corresponding Hilbertcode is generated according to its three-dimensional spatialcoordinates. As mentioned above, for a given three-dimensionalcoordinate (X₁, X₂, X₃), the coordinates of the point are expanded inbinary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

Hilbert code HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)) of thepoint (X₁, X₂, X₃) can be obtained by the following process, in whichC_(n) is a 3-bit binary subcode, C_(n) is obtained by taking n from 1 toN in order for the following calculation:

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the i ^(th) bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the i ^(th) bit and j ^(th) bit of T ₁ ^(C) ^(n) is 1,X_(i) ↔X _(j),1≤i,j≤3  4;

-   -   Constructing L-level of detail (LOD_(i))_(i=0,1 . . . 1−1), in        which, LOD_(i) is a subset of the reconstructed point cloud,        LOD_(i)⊂LOD_(j)(i<j), LOD_(L−1) is the whole reconstructed point        cloud, L is a natural number greater than 0, and L is taken as        10 in this embodiment;    -   Obtain n attribute prediction points of the current point, and        make (R_(i)=LOD_(i)−LOD_(i−1))_(i=1 . . . L−1), R₀=LOD₀, for a        point P of Hilbert code H in R_(i), n points which are closest        to the point P are selected from the points of Hilbert code in        the range of [H₁, H₂](H₁≤H≤H₂) in LOD_(i−1), and these n points        are used as the attribute prediction points of the current        point, where N is a natural number, in this embodiment, n is        taken as 3. Make these three attribute prediction points as        P_(i)=(X₁, Y_(i), Z_(i)), i=1, 2, 3, set their property values        as (A_(i))_(i=1,2,3);    -   The weighted average of the reconstructed attribute values from        these three attribute prediction points is used as the attribute        prediction value of the current point: the weights of the three        points (ω_(i))_(i=1,2,3) are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of three points P₁, P₂, P₃, and take the        weighted average value as the attribute prediction value of the        current point Â,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   Decoding the attribute residual value of the current point from        the bitstream R;    -   Obtaining the reconstructed attribute value of the current point        according to the attribute prediction value of the current point        and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 6

As shown in FIG. 3 , a point cloud attribute decoding device based on anew processing order in this embodiment includes the following modules,

Hilbert code generation module: the input of this module is thereconstructed point cloud geometry, and the output is the point cloudgeometry containing Hilbert code. For the reconstructed point cloudgeometry, this module generates the corresponding Hilbert code accordingto its three-dimensional spatial coordinates. As mentioned above, for agiven three-dimensional coordinate (X₁, X₂, X₃), the coordinates of thepoint are expanded in binary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

Hilbert code HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)) of thepoint (X₁, X₂, X₃) can be obtained by the following process, in whichC_(n) is a 3-bit binary subcode, C_(n) is obtained by taking n from 1 toN in order for the following calculation:

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the i ^(th) bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the i ^(th) bit and j ^(th) bit of T ₁ ^(C) ^(n) is 1,X_(i) ↔X _(j),1≤i,j≤3  4;

Process the attribute values of points in the point cloud in sequenceaccording to Hilbert order, and execute the following modules to processthe attribute values of the current points:

-   -   1) An attribute prediction value acquisition module: the input        of the module is the reconstructed point cloud, and the output        is the attribute prediction value of the current point, and the        module uses the weighted average of the reconstructed attribute        values of the preceding decoding points in Hilbert order as the        attribute prediction value of the current point, wherein the        Hilbert order is the point order obtained by sorting the points        in the point cloud from small to large or from large to small        according to their corresponding Hilbert code values: select the        first point P of the current point in Hilbert order, set its        property values as Â, the property value Â, is the attribute        prediction value of the current point;    -   2) Attribute residual decoding module: the input of this module        is the bitstream and the output is the attribute residual, and        this module decodes the attribute residual value of the current        point from the bitstream R;    -   3) Reconstructed attribute value acquisition module: the input        of the module is attribute residual and attribute prediction        value, and the output is the reconstructed attribute value of        the current point, and the module obtains the reconstructed        attribute value of the current point according to the attribute        prediction value of the current point and the decoded attribute        residual value: the reconstructed attribute value of the current        point is A=Â+R.

Embodiment 7

A point cloud attribute decoding device based on a new processing orderin this embodiment includes the following modules.

Hilbert code generation module: the input of this module is thereconstructed point cloud geometry, and the output is the point cloudgeometry containing Hilbert code. For the reconstructed point cloudgeometry, this module generates the corresponding Hilbert code accordingto its three-dimensional spatial coordinates. As mentioned above, for agiven three-dimensional coordinate (X₁, X₂, X₃), the coordinates of thepoint are expanded in binary as follows

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

Hilbert code HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)) of thepoint (X₁, X₂, X₃) can be obtained by the following process, in whichC_(n) is a 3-bit binary subcode, C_(n) is obtained by taking n from 1 toN in order for the following calculation:

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the i ^(th) bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the i ^(th) bit and j ^(th) bit of T ₁ ^(C) ^(n) is 1,X_(i) ↔X _(j),1≤i,j≤3  4;

Process the attribute values of points in the point cloud in sequenceaccording to Hilbert order, and execute the following modules to processthe attribute values of the current points:

-   -   1) Attribute prediction point acquisition module: the input of        this module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point. This module        selects n decoded points in Hilbert order as the attribute        prediction points of the current point, where n is a natural        number. In this embodiment, n is taken as 3: the first three        points P_(i)=(X₁, =1, 2, 3 in previous 128 points of the current        point in Hilbert order are selected, set their property values        as follows (A_(i))_(i=1,2,3);    -   2) Attribute prediction value calculation module: the input of        this module is the attribute prediction point, and the output is        the attribute prediction value of the current point. This module        uses the weighted average of the reconstructed attribute values        of these three attribute prediction points as the attribute        prediction value of the current point: the weights        (ω_(i))_(i=1,2,3) of the three points are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of three points P₁, P₂, P₃, and take the        weighted average value as the attribute prediction value of the        current point Â,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   3) Attribute residual decoding module: the input of this module        is the bitstream and the output is the attribute residual, and        this module decodes the attribute residual value of the current        point from the bitstream R;    -   Reconstructed attribute value acquisition module: the input of        the module is attribute residual and attribute prediction value,        and the output is the reconstructed attribute value of the        current point, and the module obtains the reconstructed        attribute value of the current point according to the attribute        prediction value of the current point and the decoded attribute        residual value: the reconstructed attribute value of the current        point is A=Â+R.

Embodiment 8

A point cloud attribute decoding device based on a new processing orderin this embodiment includes the following modules.

Hilbert code generation module: the input of this module is thereconstructed point cloud geometry, and the output is the point cloudgeometry containing Hilbert code. For the reconstructed point cloudgeometry, this module generates the corresponding Hilbert code accordingto its three-dimensional spatial coordinates. As mentioned above, for agiven three-dimensional coordinate (X₁, X₂, X₃), the coordinates of thepoint are expanded in binary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

Hilbert code HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)) of thepoint (X₁, X₂, X₃) can be obtained by the following process, in whichC_(n) is a 3-bit binary subcode, C_(n) is obtained by taking n from

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the i ^(th) bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the i ^(th) bit and j ^(th) bit of T ₁ ^(C) ^(n) is 1,X_(i) ↔X _(j),1≤i,j≤3  4;

-   -   Process the attribute values of points in the point cloud in        sequence according to Hilbert order, and execute the following        modules to process the attribute values of the current points:    -   1) Attribute prediction point acquisition module: the input of        this module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point. This module        selects n decoded points in Hilbert order as the attribute        prediction points of the current point, where n is a natural        number. In this embodiment, n is taken as 3: the first three        points P_(i)=(X_(i), Y_(i), Z_(i)), i=1, 2, 3 in previous 128        points of the current point in Hilbert order are selected, set        their property values as follows (A_(i))_(i=1,2,3);    -   2) Attribute prediction value calculation module: the input of        this module is the attribute prediction point, and the output is        the attribute prediction value of the current point. This module        uses the weighted average of the reconstructed attribute values        of these three attribute prediction points as the attribute        prediction value of the current point: the weights        (w_(i))_(i=1,2,3) of the three points are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of the three points P₁, P₂, P₃, and take        the weighted average value as the attribute prediction value Â        of the current point,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   3) Attribute residual decoding module: the input of this module        is the bitstream and the output is the attribute residual, and        this module decodes the attribute residual value of the current        point from the bitstream R;    -   4) Reconstructed attribute value acquisition module: the input        of the module is attribute residual and attribute prediction        value, and the output is the reconstructed attribute value of        the current point, and the module obtains the reconstructed        attribute value of the current point according to the attribute        prediction value of the current point and the decoded attribute        residual value: the reconstructed attribute value of the current        point is A=Â+R.

Embodiment 9

A point cloud attribute decoding device based on a new processing orderin this embodiment includes the following modules.

Hilbert code generation module: the input of this module is thereconstructed point cloud geometry, and the output is the point cloudgeometry containing Hilbert code. For the reconstructed point cloudgeometry, this module generates the corresponding Hilbert code accordingto its three-dimensional spatial coordinates. As mentioned above, for agiven three-dimensional coordinate (X₁, X₂, X₃), the coordinates of thepoint are expanded in binary as follows

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

Hilbert code HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)) of thepoint (X₁, X₂, X₃) can be obtained by the following process, in whichC_(n) is a 3-bit binary subcode, C_(n) is obtained by taking n from 1 toN in order for the following calculation:

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the i ^(th) bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the i ^(th) bit and j ^(th) bit of T ₁ ^(C) ^(n) is 1,X_(i) ↔X _(j),1≤i,j≤3  4;

-   -   Process the attribute values of points in the point cloud in        sequence according to Hilbert order, and execute the following        modules to process the attribute values of the current points:    -   1) Attribute prediction point acquisition module: the input of        the module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point, and the        module selects the coplanar point and collinear point of the        current point among L points in the preceding of Hilbert order        as the attribute prediction points of the current point, where        the coplanar point is the point whose cube has a common surface        with the current point, the collinear point is the point whose        cube has a common edge with the current point, and L is a        natural number greater than 0, in this embodiment, L is taken as        128: search the first 128 points of the current point in Hilbert        order for coplanar and collinear points with the current point        k, if k is not 0, let these neighbors be        (P_(i))_(i=1,2 . . . k), the attribute value of each neighbor        point is (A_(i))_(i=1,2 . . . k);    -   2) Attribute prediction point weighting module: the input of        this module is attribute prediction point, and the output is        attribute prediction point with weight, and this module gives        coplanar points and collinear points ω_(pl) and ω_(po)        respectively, in which ω_(pl) and ω_(po) are real number greater        than or equal to 0, ω_(pl) is greater than ω_(po), In this        embodiment, let ω_(pl)=2, ω_(po)=1, the weight of each neighbor        point is (ω_(i))_(i=1,2 . . . k), in which the neighbor points        with a distance of 1 are given a weight of 2, and the neighbor        points with a distance of √{square root over (2)} are given a        weight of 2;    -   3) Attribute prediction value calculation module: the input of        this module is the weighted attribute prediction point, and the        output is the attribute prediction value of the current point.        This module uses the weighted average of the reconstructed        attribute values of coplanar points and collinear points as the        attribute prediction value of the current point: calculate the        weighted average of the attribute values of these neighbor        points (P_(i))_(i=1,2 . . . k) by using the following formula,        and take the weighted average value as the attribute prediction        value of the current point Â,

$Â = \frac{\sum_{i = 1}^{k}{\omega_{i}A_{i}}}{\sum_{i = 1}^{k}\omega_{i}}$

-   -   4) Attribute residual decoding module: the input of this module        is the bitstream and the output is the attribute residual, and        this module decodes the attribute residual value of the current        point from the bitstream R;    -   Reconstructed attribute value acquisition module: the input of        the module is attribute residual and attribute prediction value,        and the output is the reconstructed attribute value of the        current point, and the module obtains the reconstructed        attribute value of the current point according to the attribute        prediction value of the current point and the decoded attribute        residual value: the reconstructed attribute value of the current        point is A=Â+R.

Embodiment 10

A point cloud attribute decoding device based on a new processing orderin this embodiment includes the following modules.

Hilbert code generation module: the input of this module is thereconstructed point cloud geometry, and the output is the point cloudgeometry containing Hilbert code. For the reconstructed point cloudgeometry, this module generates the corresponding Hilbert code accordingto its three-dimensional spatial coordinates. As mentioned above, for agiven three-dimensional coordinate (X₁, X₂, X₃), the coordinates of thepoint are expanded in binary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

Hilbert code HCode_(N)=(C₁C₂ . . . C_(n) . . . C_(N−1)C_(N)) of thepoint (X₁, X₂, X₃) can be obtained by the following process, in whichC_(n) is a 3-bit binary subcode, C_(n) is obtained by taking n from 1 toN in order for the following calculation:

C _(n) =DG((x ₁ ^(n) x ₂ ^(n) x ₃ ^(n))₂)  1.

Set X _(i)=(x _(i) ^(n+1) . . . x _(i) ^(N−1) x _(i) ^(N)),1≤i≤3  2.

Mirror Flip2:if the i ^(th) bit of t ₂ ^(C) ^(n) is 1,makeX_(i)=2^(N−n+1)−1−X _(i),1≤i≤3  3.

Mirror Flip1:if the i ^(th) bit and j ^(th) bit of T ₁ ^(C) ^(n) is 1,X_(i) ↔X _(j),1≤i,j≤3  4;

-   -   LOD building module: The input of this module is the        reconstructed point cloud geometry, and the output is the built        LOD, this module builds L-level detail level        (LOD_(i))_(i=0,1 . . . 1−1), in which, LOD_(i) is a subset of        the reconstructed point cloud, LOD_(i)⊂LOD_(j)(i<j), LOD_(L−1)        is the whole reconstructed point cloud, L is a natural number        greater than 0, and L is taken as 10 in this embodiment;    -   Attribute prediction point acquisition module: the input of the        module is the constructed LOD, and the output is the attribute        prediction point of the current point, the module acquires n        attribute prediction points of the current point, and make        (R_(i)=LOD_(i)−LOD_(i−1))_(i=1 . . . L−1), R₀=LOD₀, for a point        P of Hilbert code H in R_(i), n points which are closest to the        point P are selected from the points of Hilbert code in the        range of [H₁, H₂](H₁≤H≤H₂) in LOD_(i−1), and these n points are        used as the attribute prediction points of the current point,        where N is a natural number, in this embodiment, n is taken        as 3. Make these three attribute prediction points as        P_(i)=(X_(i), Y_(i), Z_(i)), i=1, 2, 3, set their property        values as (A_(i))_(i=1,2,3);    -   Attribute prediction value calculation module: the input of this        module is the attribute prediction point, and the output is the        attribute prediction value of the current point. This module        uses the weighted average of the reconstructed attribute values        from these three attribute prediction points is used as the        attribute prediction value of the current point: the weights of        the three points (ω_(i))_(i=1, 2, 3) are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate three points P₁, P₂, P₃.        The weighted average of the attribute values of, and take the        weighted average as the attribute prediction value of the        current point Â,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   Attribute residual decoding module: the input of this module is        the bitstream and the output is the attribute residual, and this        module decodes the attribute residual value of the current point        from the bitstream R;    -   Reconstructed attribute value acquisition module: the input of        the module is attribute residual and attribute prediction value,        and the output is the reconstructed attribute value of the        current point, and the module obtains the reconstructed        attribute value of the current point according to the attribute        prediction value of the current point and the decoded attribute        residual value: the reconstructed attribute value of the current        point is A=Â+R;

Embodiment 11

A point cloud attribute decoding method based on a new processing orderin this embodiment, as shown in FIG. 2 , includes the followingcontents,

When the decoded geometric points are in Hilbert order, the point cloudattributes are directly processed according to the decoding order, andthe attribute values of the current points are processed by thefollowing steps:

-   -   1) The weighted average of reconstructed attribute values of        preceding decoding points under Hilbert order is used as the        attribute prediction value of the current point, where Hilbert        order is the point order obtained by sorting points in the point        cloud from small to large or from large to small according to        their corresponding Hilbert code values: the previous point P of        the current point under Hilbert order is selected, set its        property values as Â, the property value Â is the predicted        value of the attribute of the current point;    -   2) Decoding the attribute residual value of the current point        from the bitstream R;    -   3) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 12

A point cloud attribute decoding method based on a new processing orderin this embodiment includes the following contents.

When the decoded geometric points are in Hilbert order, the point cloudattributes are directly processed according to the decoding order, andthe attribute values of the current points are processed by thefollowing steps:

-   -   1) N decoding points in that preceding under Hilbert order are        selected as the attribute prediction points of the current        point, where n is a natural number, and in this embodiment, n is        taken as 3: the first three points P_(i)=(X_(i), Y_(i), Z_(i)),        i=1, 2, 3 of the current point under Hilbert order are selected,        set their property values as follows (A_(i))_(i=1,2,3);    -   2) The weighted average of the reconstructed attribute values        from these three attribute prediction points is used as the        attribute prediction value of the current point: the weights        (ω_(i))_(i=1,2,3) of the three points are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of the three points P₁, P₂, P₃, and take        the weighted average value as the attribute prediction value Â        of the current point,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   3) Decoding the attribute residual value of the current point        from the bitstream R;    -   4) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 13

A point cloud attribute decoding method based on a new processing orderin this embodiment includes the following contents.

When the decoded geometric points are in Hilbert order, the point cloudattributes are directly processed according to the decoding order, andthe attribute values of the current points are processed by thefollowing steps:

-   -   1) Select n points closest to the current point from L points in        the preceding of Hilbert order as the attribute prediction        points of the current point, where n is a natural number. In        this embodiment, n is taken as 3: find 3 points closest to the        current point from the first 128 points of the current point in        Hilbert order, and make P_(i)=(X₁, Y_(i), Z_(i)), i=1, 2, 3, set        their property values as follows (A_(i))_(i=1,2,3);    -   2) The weighted average of the reconstructed attribute values        from these three attribute prediction points is used as the        attribute prediction value of the current point: the weights        (ω_(i))_(i=)1, 2, 3 of the three points are obtained        respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of the three points P₁, P₂, P₃, and take        the weighted average value as the attribute prediction value Â        of the current point,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   1) Decoding the attribute residual value of the current point        from the bitstream R;    -   2) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 14

A point cloud attribute decoding method based on a new processing orderin this embodiment includes the following contents.

When the decoded geometric points are in Hilbert order, the point cloudattributes are directly processed according to the decoding order, andthe attribute values of the current points are processed by thefollowing steps:

-   -   1) Select the coplanar point and collinear point of the current        point among L points in the preceding of Hilbert order as the        attribute prediction points of the current point, where the        coplanar point is the point where the cube where the point is        located and the cube where the current point is located have a        common surface, and the collinear point refers to the point        where the cube where the point is located and the cube where the        current point is located have a common edge, and L is a natural        number greater than 0. In this embodiment, L is taken as 128:        search the first 128 points of the current point in Hilbert        order for coplanar and collinear neighbor points of the current        point, let the number of these neighbors is k, if k is not 0,        let these neighbors be (P_(i))_(i=1,2 . . . k), the attribute        value of each neighbor point is (A_(i))_(i=1,2 . . . k);    -   2) Weight coplanar points and collinear points ω_(pl) and ω_(po)        respectively, in which ω_(pl) and ω_(po) are real number greater        than or equal to 0, ω_(pl) is greater than ω_(po), In this        embodiment, let ω_(pl)=2, ω_(po)=1, the weight of each neighbor        point is (ω_(i))_(i=1,2 . . . k), in which the neighbor points        with a distance of 1 are given a weight of 2, and the neighbor        points with a distance of √{square root over (2)} are given a        weight of 2;    -   3) Use the weighted average of the reconstructed attribute        values of coplanar points and collinear points as the attribute        prediction value of the current point: calculate the weighted        average of the attribute values of these neighbor points        (P_(i))_(i=1,2 . . . k) by using the following formula, and take        the weighted average as the attribute prediction value of the        current point Â,

$Â = \frac{\sum_{i = 1}^{k}{\omega_{i}A_{i}}}{\sum_{i = 1}^{k}\omega_{i}}$

-   -   4) Decoding the attribute residual value of the current point        from the bitstream R;    -   5) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 15

As shown in FIG. 3 , a point cloud attribute decoding device based on anew processing order in this embodiment includes the following modules.

When the decoded geometric points are in Hilbert order, the point cloudattributes are directly processed according to the decoding order, andthe following modules are executed for processing the attribute valuesof the current points:

-   -   1) Attribute prediction value acquisition module: the input of        the module is the reconstructed point cloud, and the output is        the attribute prediction value of the current point, and the        module uses the weighted average of the reconstructed attribute        values of the preceding decoding points in Hilbert order as the        attribute prediction value of the current point, wherein the        Hilbert order is the point order obtained by sorting the points        in the point cloud from small to large or from large to small        according to their corresponding Hilbert code values: select the        first point of the current point in Hilbert order. PSet their        property values as follows Â, the property value Â is the        predicted value of the attribute of the current point;    -   2) Attribute residual decoding module: the input of this module        is the bitstream and the output is the attribute residual, and        this module decodes the attribute residual value of the current        point from the bitstream R;    -   3) Reconstructed attribute value acquisition module: the input        of the module is attribute residual and attribute prediction        value, and the output is the reconstructed attribute value of        the current point, and the module obtains the reconstructed        attribute value of the current point according to the attribute        prediction value of the current point and the decoded attribute        residual value: the reconstructed attribute value of the current        point is A=Â+R.

Embodiment 16

A point cloud attribute decoding device based on a new processing orderin this embodiment includes the following modules.

When the decoded geometric points are in Hilbert order, the point cloudattributes are directly processed according to the decoding order, andthe following modules are executed for processing the attribute valuesof the current points:

-   -   1) Attribute prediction point acquisition module: the input of        this module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point. This module        selects n decoded points in Hilbert order as the attribute        prediction points of the current point, where n is a natural        number. In this embodiment, n is taken as 3: the first three        points P_(i)=(X_(i), Y_(i), Z_(i)), i=1, 2, 3 of the current        point in Hilbert order are selected, set their property values        as follows (A_(i))_(i=1, 2, 3);    -   2) Attribute prediction value calculation module: the input of        this module is the attribute prediction point, and the output is        the attribute prediction value of the current point. This module        uses the weighted average of the reconstructed attribute values        of these three attribute prediction points as the attribute        prediction value of the current point: the weights        (ω_(i))_(i=1, 2, 3) of the three points are obtained        respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of the three points P₁, P₂, P₃, and take        the weighted average value as the attribute prediction value Â        of the current point,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   3) Decoding the attribute residual value of the current point        from the bitstream R;    -   4) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 17

A point cloud attribute decoding device based on a new processing orderin this embodiment includes the following modules.

When the decoded geometric points are in Hilbert order, the point cloudattributes are directly processed according to the decoding order, andthe following modules are executed for processing the attribute valuesof the current points:

-   -   1) Attribute prediction point acquisition module: the input of        this module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point. This module        selects n decoded points in Hilbert order as the attribute        prediction points of the current point, where n is a natural        number. In this embodiment, n is taken as 3: the first three        points P_(i)=(X₁, Y_(i), Z_(i)), i=1, 2, 3 of the current point        in Hilbert order are selected, set their property values as        follows (A_(i))_(i=1,2,3);    -   2) Attribute prediction value calculation module: the input of        this module is the attribute prediction point, and the output is        the attribute prediction value of the current point. This module        uses the weighted average of the reconstructed attribute values        of these three attribute prediction points as the attribute        prediction value of the current point: the weights (ω_(i)) i=1,        2, 3 of the three points are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of the three points P₁, P₂, P₃, and take        the weighted average value as the attribute prediction value Â        of the current point,

$Â = \frac{\sum_{i = 1}^{3}{\omega_{i}A_{i}}}{\sum_{i = 1}^{3}\omega_{i}}$

-   -   3) Decoding the attribute residual value of the current point        from the bitstream R;    -   4) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 18

A point cloud attribute decoding device based on a new processing orderin this embodiment includes the following modules.

When the decoded geometric points are in Hilbert order, the point cloudattributes are directly processed according to the decoding order, andthe following modules are executed for processing the attribute valuesof the current points:

-   -   1) Attribute prediction point acquisition module: the input of        the module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point, this module        selects the coplanar point and collinear point of the current        point among L points in the preceding of Hilbert order as the        attribute prediction points of the current point, where the        coplanar point is the point where the cube where the point is        located and the cube where the current point is located have a        common surface, and the collinear point refers to the point        where the cube where the point is located and the cube where the        current point is located have a common edge, and L is a natural        number greater than 0. In this embodiment, L is taken as 128:        search the first 128 points of the current point in Hilbert        order for coplanar and collinear neighbor points of the current        point, let the number of these neighbors is k, if k is not 0,        let these neighbors be (P_(i))_(i=1,2 . . . k), the attribute        value of each neighbor point is (A_(i))_(i=1,2 . . . k);    -   2) Attribute prediction point weighting module: the input of the        module is the attribute prediction point, and the output is the        weighted attribute prediction point, this module weights        coplanar points and collinear points ω_(pl) and ω_(po)        respectively, in which ω_(pl) and ω_(po) are real number greater        than or equal to 0, ω_(pl) is greater than ω_(po), In this        embodiment, let ω_(pl)=2, ω_(po)=1, the weight of each neighbor        point is (ω_(i))_(i=1,2 . . . k), in which the neighbor points        with a distance of 1 are given a weight of 2, and the neighbor        points with a distance of √{square root over (2)} are given a        weight of 2;    -   3) Attribute prediction value calculation module: The input of        this module is a weighted attribute prediction point, and the        output is the attribute prediction value of the current point,        this module uses the weighted average of the reconstructed        attribute values of coplanar points and collinear points as the        attribute prediction value of the current point: calculate the        weighted average of the attribute values of these neighbor        points (P_(i))_(i=1,2 . . . k) by using the following formula,        and take the weighted average as the attribute prediction value        of the current point Â,

$Â = \frac{\sum_{i = 1}^{k}{\omega_{i}A_{i}}}{\sum_{i = 1}^{k}\omega_{i}}$

-   -   4) Decoding the attribute residual value of the current point        from the bitstream R;    -   5) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 19

A point cloud attribute decoding method based on a new processing orderin this embodiment includes the following contents.

The three-dimensional geometric coordinates (X₁, X₂, X₃)_(N) ofreconstructed points in the point cloud are processed sequentially fromhigh position to low position of the binary bits, where the i^(th)processing: generate the corresponding Hilbert code subcode C_(i,m) _(i)according to the (3*m_(i)) binary bits of the three-dimensionalgeometric coordinates of the reconstructed point, in this embodiment,N=bitWidth, X₁=x, X₂=y, X₃=z, each fixed only deal with 1 bit, that is,m_(i)=1, p=bitWidth, ConvertCode^(m) ^(i) corresponds to the tablelookup operation HilbertTable [state][pos][1], ConvertState^(m) ^(i)corresponds to the table lookup operation HilbertTable [state][pos][0],the Hilbert code HCode of the decoded point is obtained by the followingmethod:

HCode= 0;  state = 4;  for (i = bitWidth−1; i >= 0; i=i−1) {   HCode=HCode<<3;   bx = (x >> i) & 1;   by = (y >> i) & 1;   bz = (z >> i) & 1;  pos = (bx << 2) | (by << 1) | bz;   HCode= HCode+ HilbertTable[state][pos][1];   state = HilbertTable [state][pos][0]; }

Where >> refers to bitwise right shift operation and << refers tobitwise left shift operation, and the lookup table HilbertCode used isas follows:

HilbertTable[12][8][2] = { {{5, 0}, {1, 7}, {4, 1}, {2, 6}, {3, 3}, {3,4}, {4, 2}, {2, 5}}, {{6, 4}, {2, 7}, {6, 3}, {8, 0}, {0, 5}, {0, 6},{7, 2}, {7, 1}}, {{1, 6}, {0, 7}, {1, 5}, {9, 4}, {10, 1}, {11, 0}, {10,2}, {9, 3}}, {{9, 2}, {8, 5}, {0, 3}, {0, 4}, {9, 1}, {8, 6}, {6, 0},{10, 7}}, {{0, 0}, {5, 1}, {8, 3}, {5, 2}, {11, 7}, {6, 6}, {8, 4}, {6,5}}, {{4, 0}, {10, 3}, {9, 7}, {10, 4}, {0, 1}, {0, 2}, {7, 6}, {7, 5}},{{11, 6}, {11, 5}, {3, 1}, {3, 2}, {4, 7}, {1, 4}, {9, 0}, {1, 3}}, {{9,6}, {8, 1}, {5, 7}, {1, 0}, {9, 5}, {8, 2}, {11, 4}, {11, 3}}, {{1, 2},{4, 3}, {1, 1}, {7, 0}, {10, 5}, {4, 4}, {10, 6}, {3, 7}}, {{2, 4}, {5,5}, {7, 7}, {5, 6}, {2, 3}, {6, 2}, {3, 0}, {6, 1}}, {{11, 2}, {11, 1},{3, 5}, {3, 6}, {5, 3}, {2, 0}, {5, 4}, {8, 7}}, {{7, 4}, {7, 3}, {4,5}, {2, 2}, {6, 7}, {10, 0}, {4, 6}, {2, 1}},

According to the sequence of Hilbert from small to large or from largeto small, the reconstructed attribute information of the point cloud isdecoded from the bitstream in order, and the attribute value of thecurrent point is processed by the following steps:

-   -   1) Select n points closest to the current point from L points in        the preceding of Hilbert order as the attribute prediction        points of the current point, where n is a natural number. In        this embodiment, n is taken as 3: find 3 points closest to the        current point from the first 128 points of the current point in        Hilbert order, and make P_(i)=(X₁, Y_(i), Z_(i)), i=1, 2, 3, set        their property values as follows(A_(i))_(i=1, 2, 3);    -   2) The weighted average of the reconstructed attribute values        from these three attribute prediction points is used as the        attribute prediction value of the current point: the weights        (ω_(i))_(i=)1,2,3 of the three points are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},$ i = 1, 2, 3

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of the three points P₁, P₂, P₃, and take        the weighted average value as the attribute prediction value A        of the current point,

$\hat{A} = \frac{{\sum}_{i = 1}^{3}\omega_{i}A_{i}}{{\sum}_{i = 1}^{3}\omega_{i}}$

-   -   3) Decoding the attribute residual value of the current point        from the bitstream R;    -   4) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 20

A point cloud attribute decoding device based on a new processing orderin this embodiment includes the following modules.

Hilbert code generation module: the input of this module is thereconstructed geometric coordinates of the point cloud, and the outputis the Hilbert code corresponding to the geometric coordinates of thepoint cloud. This module sequentially processes the three-dimensionalgeometric coordinates (X₁, X₂, X₃)_(N) of reconstructed points in thepoint cloud sequentially from high position to low position of thebinary bits, where the i^(th) processing: generate the correspondingHilbert code subcode C_(i,m) _(i) according to the (3*m_(i)) binary bitsof the three-dimensional geometric coordinates of the reconstructedpoint, in this embodiment, N=bitWidth, X_(i)=x, X₂=y, X₃=z, each fixedonly deal with 1 bit, that is, m_(i)=1, p=bitWidth, ConvertCode^(m) ^(i)corresponds to the table lookup operation HilbertTable [state][pos][1],ConvertState^(m) ^(i) corresponds to the table lookup operationHilbertTable [state][pos][0], the Hilbert code HCode of the decodedpoint is obtained by the following method:

HCode= 0;  state = 4;  for (i = bitWidth−1; i >= 0; i=i−1) {   HCode=HCode<<3;   bx = (x >> i) & 1;   by = (y >> i) & 1;   bz = (z >> i) & 1;  pos = (bx << 2) | (by << 1) | bz;   HCode = HCode+ Hilbert Table[state ][pos][1];   state = HilbertTable [state ][pos][0]; }

-   -   Where >> refers to bitwise right shift operation and << refers        to bitwise left shift operation, and the lookup table of        HilbertCode used is as follows:

HilbertTable[12][8][2] = { {{5, 0}, {1, 7}, {4, 1}, {2, 6}, {3, 3}, {3,4}, {4, 2}, {2, 5}}, {{6, 4}, {2, 7}, {6, 3}, {8, 0}, {0, 5}, {0, 6},{7, 2}, {7, 1}}, {{1, 6}, {0, 7}, {1, 5}, {9, 4}, {10, 1}, {11, 0}, {10,2}, {9, 3}}, {{9, 2}, {8, 5}, {0, 3}, {0, 4}, {9, 1}, {8, 6}, {6, 0},{10, 7}}, {{0, 0}, {5, 1}, {8, 3}, {5, 2}, {11, 7}, {6, 6}, {8, 4}, {6,5}}, {{4, 0}, {10, 3}, {9, 7}, {10, 4}, {0, 1}, {0, 2}, {7, 6}, {7, 5}},{{11, 6}, {11, 5}, {3, 1}, {3, 2}, {4, 7}, {1, 4}, {9, 0}, {1, 3}}, {{9,6}, {8, 1}, {5, 7}, {1, 0}, {9, 5}, {8, 2}, {11, 4}, {11, 3}}, {{1, 2},{4, 3}, {1, 1}, {7, 0}, {10, 5}, {4, 4}, {10, 6}, {3, 7}}, {{2, 4}, {5,5}, {7, 7}, {5, 6}, {2, 3}, {6, 2}, {3, 0}, {6, 1}}, {{11, 2}, {11, 1},{3, 5}, {3, 6}, {5, 3}, {2, 0}, {5, 4}, {8, 7}}, {{7, 4}, {7, 3}, {4,5}, {2, 2}, {6, 7}, {10, 0}, {4, 6}, {2, 1}},

Attribute decoding module: the input of this module is the attributebitstream, and the output is the reconstructed point cloud attribute.This module decodes the reconstructed point cloud attribute informationfrom the bitstream in order of Hilbert from small to large or from largeto small, and executes the following modules to process the attributevalue of the current point:

-   -   1) Attribute prediction point acquisition module: the input of        this module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point. The module        selects n points closest to the current point from the L points        in the preceding under Hilbert order as the attribute prediction        points of the current point, where n is a natural number, and in        this embodiment, n is taken as 3: three points closest to the        current point are found in the first 128 points of the current        point under Hilbert order, and make these as P_(i)=(X₁, i=1, 2,        3, set their property values as follows (A_(i))_(i=1, 2, 3);    -   2) Attribute prediction value calculation module: the input of        this module is the attribute prediction point, and the output is        the attribute prediction value of the current point. This module        uses the weighted average of the reconstructed attribute values        of these three attribute prediction points as the attribute        prediction value of the current point: the weights        (ω_(i))_(i=1, 2, 3) of the three points are obtained        respectively,

${\omega_{i} = \frac{1}{d_{i}}},{i = 1},2,3$

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are weighting coefficients of three dimensions, which        are used to control the weights of the three dimensions. In this        embodiment, the weighting coefficient a, b, c are respectively        valued as a=2, b=1, c=3;    -   Use the following formula to calculate the weighted average of        the attribute values of the three points P₁, P₂, P₃, and take        the weighted average value as the attribute prediction value Â        of the current point,

$\hat{A} = \frac{{\sum}_{i = 1}^{3}\omega_{i}A_{i}}{{\sum}_{i = 1}^{3}\omega_{i}}$

-   -   3) Decoding the attribute residual value of the current point        from the bitstream R;    -   4) Obtaining the reconstructed attribute value of the current        point according to the attribute prediction value of the current        point and the decoded attribute residual value, wherein the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 21

A point cloud attribute decoding method based on a new processing orderin this embodiment includes the following contents.

The three-dimensional geometric coordinates (X₁, X₂, X₃)_(N) ofreconstructed points in the point cloud are processed sequentially fromhigh position to low position of the binary bits, where the i^(th)processing: generate the corresponding Hilbert code subcode C_(i,m) _(i)according to the (3*m_(i)) binary bits of the three-dimensionalgeometric coordinates of the reconstructed point, in this embodiment,N=bitWidth and even, X₁=x, X₂=y, X₃=z, each fixed only deal with 2 bit,that is, m_(i)=2, p=bitWidth/2, ConvertCode^(m) ^(i) corresponds to thetable lookup operation HilbertTable [state][pos][1], ConvertState^(m)^(i) corresponds to the table lookup operation HilbertTable[state][pos][1], the Hilbert code HCode of the decoded point is obtainedby the following method:

HCode= 0;  state = 4;  for (i = bitWidth−2; i >= 0; i−=2) {  HilbertCode <<= 6;   bx = (x >> i) & 3;   by = (y >> 1) & 3;   bz =(z >> i) & 3;   pos = (bx << 4) | (by << 2) | bz;   HilbertCode +=HilbertTable [state][pos][1];   state = HilbertTable [state][pos][0]; }

Where >> refers to bitwise right shift operation and << refers tobitwise left shift operation, and the lookup table of HilbertCode usedis as follows:

HilbertTable [12][64][2] = { {{4, 0}, {10, 3}, {6, 60}, {2, 63}, {9, 7},{10, 4}, {6, 59}, {8, 56}, {0, 8}, {5, 9}, {1, 54}, {0, 55}, {8, 11},{5, 10}, {1, 53}, {9, 52}, {0, 1}, {0, 2}, {0, 61}, {0, 62}, {7, 6}, {7,5}, {7, 58}, {7, 57}, {11, 15}, {6, 14}, {10, 49}, {11, 48}, {8, 12},{6, 13}, {10, 50}, {9, 51}, {9, 26}, {8, 29}, {9, 34}, {8, 37}, {0, 27},{0, 28}, {0, 35}, {0, 36}, {0, 16}, {5, 17}, {1, 46}, {0, 47}, {8, 19},{5, 18}, {1, 45}, {9, 44}, {9, 25}, {8, 30}, {9, 33}, {8, 38}, {6, 24},{10, 31}, {6, 32}, {10, 39}, {11, 23}, {6, 22}, {10, 41}, {11, 40}, {8,20}, {6, 21}, {10, 42}, {9, 43}}, {{11, 38}, {11, 37}, {1, 62}, {0, 63},{3, 33}, {3, 34}, {1, 61}, {9, 60}, {11, 30}, {11, 29}, {1, 2}, {4, 3},{3, 25}, {3, 26}, {1, 1}, {7, 0}, {4, 39}, {1, 36}, {10, 57}, {11, 56},{9, 32}, {1, 35}, {10, 58}, {9, 59}, {4, 31}, {1, 28}, {10, 5}, {4, 4},{9, 24}, {1, 27}, {10, 6}, {3, 7}, {5, 40}, {1, 47}, {5, 48}, {1, 55},{4, 41}, {2, 46}, {4, 49}, {2, 54}, {9, 22}, {8, 17}, {9, 14}, {8, 9},{5, 23}, {1, 16}, {5, 15}, {1, 8}, {3, 43}, {3, 44}, {3, 51}, {3, 52},{4, 42}, {2, 45}, {4, 50}, {2, 53}, {9, 21}, {8, 18}, {9, 13}, {8, 10},{11, 20}, {11, 19}, {11, 12}, {11, 11}}, {{6, 52}, {2, 55}, {5, 56}, {1,63}, {6, 51}, {8, 48}, {4, 57}, {2, 62}, {6, 44}, {2, 47}, {2, 36}, {5,37}, {6, 43}, {8, 40}, {7, 39}, {5, 38}, {0, 53}, {0, 54}, {3, 59}, {3,60}, {7, 50}, {7, 49}, {4, 58}, {2, 61}, {0, 45}, {0, 46}, {2, 35}, {6,34}, {7, 42}, {7, 41}, {3, 32}, {6, 33}, {11, 10}, {11, 9}, {7, 4}, {7,3}, {3, 13}, {3, 14}, {4, 5}, {2, 2}, {11, 18}, {11, 17}, {2, 28}, {5,29}, {3, 21}, {3, 22}, {7, 31}, {5, 30}, {5, 11}, {2, 8}, {6, 7}, {10,0}, {5, 12}, {8, 15}, {4, 6}, {2, 1}, {5, 19}, {2, 16}, {2, 27}, {6,26}, {5, 20}, {8, 23}, {3, 24}, {6, 25}}, {{2, 20}, {5, 21}, {1, 42},{4, 43}, {7, 23}, {5, 22}, {1, 41}, {7, 40}, {5, 24}, {1, 31}, {5, 32},{1, 39}, {4, 25}, {2, 30}, {4, 33}, {2, 38}, {2, 19}, {6, 18}, {10, 45},{4, 44}, {3, 16}, {6, 17}, {10, 46}, {3, 47}, {3, 27}, {3, 28}, {3, 35},{3, 36}, {4, 26}, {2, 29}, {4, 34}, {2, 37}, {2, 12}, {5, 13}, {1, 50},{4, 51}, {7, 15}, {5, 14}, {1, 49}, {7, 48}, {11, 6}, {11, 5}, {11, 58},{11, 57}, {3, 1}, {3, 2}, {3, 61}, {3, 62}, {2, 11}, {6, 10}, {10, 53},{4, 52}, {3, 8}, {6, 9}, {10, 54}, {3, 55}, {4, 7}, {1, 4}, {5, 59}, {2,56}, {9, 0}, {1, 3}, {5, 60}, {8, 63}}, {{5, 0}, {1, 7}, {4, 8}, {10,11}, {4, 1}, {2, 6}, {9, 15}, {10, 12}, {1, 26}, {4, 27}, {4, 16}, {10,19}, {1, 25}, {7, 24}, {9, 23}, {10, 20}, {3, 3}, {3, 4}, {0, 9}, {0,10}, {4, 2}, {2, 5}, {7, 14}, {7, 13}, {10, 29}, {4, 28}, {0, 17}, {0,18}, {10, 30}, {3, 31}, {7, 22}, {7, 21}, {7, 60}, {7, 59}, {11, 54},{11, 53}, {4, 61}, {2, 58}, {3, 49}, {3, 50}, {1, 34}, {4, 35}, {11,46}, {11, 45}, {1, 33}, {7, 32}, {3, 41}, {3, 42}, {6, 63}, {10, 56},{4, 55}, {1, 52}, {4, 62}, {2, 57}, {9, 48}, {1, 51}, {10, 37}, {4, 36},{4, 47}, {1, 44}, {10, 38}, {3, 39}, {9, 40}, {1, 43}}, {{0, 0}, {5, 1},{11, 26}, {11, 25}, {8, 3}, {5, 2}, {3, 29}, {3, 30}, {2, 60}, {5, 61},{11, 34}, {11, 33}, {7, 63}, {5, 62}, {3, 37}, {3, 38}, {11, 7}, {6, 6},{5, 27}, {2, 24}, {8, 4}, {6, 5}, {5, 28}, {8, 31}, {2, 59}, {6, 58},{5, 35}, {2, 32}, {3, 56}, {6, 57}, {5, 36}, {8, 39}, {5, 8}, {1, 15},{5, 16}, {1, 23}, {4, 9}, {2, 14}, {4, 17}, {2, 22}, {9, 54}, {8, 49},{9, 46}, {8, 41}, {5, 55}, {1, 48}, {5, 47}, {1, 40}, {3, 11}, {3, 12},{3, 19}, {3, 20}, {4, 10}, {2, 13}, {4, 18}, {2, 21}, {9, 53}, {8, 50},{9, 45}, {8, 42}, {11, 52}, {11, 51}, {11, 44}, {11, 43}}, {{7, 52}, {7,51}, {7, 44}, {7, 43}, {4, 53}, {2, 50}, {4, 45}, {2, 42}, {9, 10}, {8,13}, {9, 18}, {8, 21}, {0, 11}, {0, 12}, {0, 19}, {0, 20}, {6, 55}, {10,48}, {6, 47}, {10, 40}, {4, 54}, {2, 49}, {4, 46}, {2, 41}, {9, 9}, {8,14}, {9, 17}, {8, 22}, {6, 8}, {10, 15}, {6, 16}, {10, 23}, {0, 56}, {5,57}, {6, 36}, {2, 39}, {8, 59}, {5, 58}, {6, 35}, {8, 32}, {2, 4}, {5,5}, {6, 28}, {2, 31}, {7, 7}, {5, 6}, {6, 27}, {8, 24}, {11, 63}, {6,62}, {0, 37}, {0, 38}, {8, 60}, {6, 61}, {7, 34}, {7, 33}, {2, 3}, {6,2}, {0, 29}, {0, 30}, {3, 0}, {6, 1}, {7, 26}, {7, 25}}, {{2, 52}, {5,53}, {1, 10}, {4, 11}, {7, 55}, {5, 54}, {1, 9}, {7, 8}, {4, 56}, {10,59}, {6, 4}, {2, 7}, {9, 63}, {10, 60}, {6, 3}, {8, 0}, {2, 51}, {6,50}, {10, 13}, {4, 12}, {3, 48}, {6, 49}, {10, 14}, {3, 15}, {0, 57},{0, 58}, {0, 5}, {0, 6}, {7, 62}, {7, 61}, {7, 2}, {7, 1}, {2, 44}, {5,45}, {1, 18}, {4, 19}, {7, 47}, {5, 46}, {1, 17}, {7, 16}, {7, 36}, {7,35}, {7, 28}, {7, 27}, {4, 37}, {2, 34}, {4, 29}, {2, 26}, {2, 43}, {6,42}, {10, 21}, {4, 20}, {3, 40}, {6, 41}, {10, 22}, {3, 23}, {6, 39},{10, 32}, {6, 31}, {10, 24}, {4, 38}, {2, 33}, {4, 30}, {2, 25}}, {{6,20}, {2, 23}, {0, 24}, {5, 25}, {6, 19}, {8, 16}, {8, 27}, {5, 26}, {6,12}, {2, 15}, {9, 6}, {8, 1}, {6, 11}, {8, 8}, {5, 7}, {1, 0}, {0, 21},{0, 22}, {11, 31}, {6, 30}, {7, 18}, {7, 17}, {8, 28}, {6, 29}, {0, 13},{0, 14}, {9, 5}, {8, 2}, {7, 10}, {7, 9}, {11, 4}, {11, 3}, {11, 42},{11, 41}, {0, 32}, {5, 33}, {3, 45}, {3, 46}, {8, 35}, {5, 34}, {11,50}, {11, 49}, {9, 58}, {8, 61}, {3, 53}, {3, 54}, {0, 59}, {0, 60}, {5,43}, {2, 40}, {11, 39}, {6, 38}, {5, 44}, {8, 47}, {8, 36}, {6, 37}, {5,51}, {2, 48}, {9, 57}, {8, 62}, {5, 52}, {8, 55}, {6, 56}, {10, 63}},{{1, 38}, {0, 39}, {4, 40}, {10, 43}, {1, 37}, {9, 36}, {9, 47}, {10,44}, {9, 62}, {8, 57}, {4, 48}, {10, 51}, {5, 63}, {1, 56}, {9, 55},{10, 52}, {10, 33}, {11, 32}, {0, 41}, {0, 42}, {10, 34}, {9, 35}, {7,46}, {7, 45}, {9, 61}, {8, 58}, {0, 49}, {0, 50}, {11, 60}, {11, 59},{7, 54}, {7, 53}, {1, 30}, {0, 31}, {11, 22}, {11, 21}, {1, 29}, {9,28}, {3, 17}, {3, 18}, {9, 2}, {8, 5}, {11, 14}, {11, 13}, {0, 3}, {0,4}, {3, 9}, {3, 10}, {10, 25}, {11, 24}, {4, 23}, {1, 20}, {10, 26}, {9,27}, {9, 16}, {1, 19}, {9, 1}, {8, 6}, {4, 15}, {1, 12}, {6, 0}, {10,7}, {9, 8}, {1, 11}}, {{7, 20}, {7, 19}, {7, 12}, {7, 11}, {4, 21}, {2,18}, {4, 13}, {2, 10}, {9, 42}, {8, 45}, {9, 50}, {8, 53}, {0, 43}, {0,44}, {0, 51}, {0, 52}, {6, 23}, {10, 16}, {6, 15}, {10, 8}, {4, 22}, {2,17}, {4, 14}, {2, 9}, {9, 41}, {8, 46}, {9, 49}, {8, 54}, {6, 40}, {10,47}, {6, 48}, {10, 55}, {4, 24}, {10, 27}, {1, 6}, {0, 7}, {9, 31}, {10,28}, {1, 5}, {9, 4}, {4, 32}, {10, 35}, {1, 58}, {4, 59}, {9, 39}, {10,36}, {1, 57}, {7, 56}, {0, 25}, {0, 26}, {10, 1}, {11, 0}, {7, 30}, {7,29}, {10, 2}, {9, 3}, {0, 33}, {0, 34}, {10, 61}, {4, 60}, {7, 38}, {7,37}, {10, 62}, {3, 63}}, {{9, 38}, {8, 33}, {9, 30}, {8, 25}, {5, 39},{1, 32}, {5, 31}, {1, 24}, {0, 40}, {5, 41}, {1, 22}, {0, 23}, {8, 43},{5, 42}, {1, 21}, {9, 20}, {9, 37}, {8, 34}, {9, 29}, {8, 26}, {11, 36},{11, 35}, {11, 28}, {11, 27}, {11, 47}, {6, 46}, {10, 17}, {11, 16}, {8,44}, {6, 45}, {10, 18}, {9, 19}, {11, 62}, {11, 61}, {11, 2}, {11, 1},{3, 57}, {3, 58}, {3, 5}, {3, 6}, {0, 48}, {5, 49}, {1, 14}, {0, 15},{8, 51}, {5, 50}, {1, 13}, {9, 12}, {4, 63}, {1, 60}, {5, 3}, {2, 0},{9, 56}, {1, 59}, {5, 4}, {8, 7}, {11, 55}, {6, 54}, {10, 9}, {11, 8},{8, 52}, {6, 53}, {10, 10}, {9, 11}}};

According to the Hilbert order from small to large or from large tosmall, the reconstructed attribute information of the point cloud isdecoded from the bitstream in order, and the attribute value of thecurrent point is processed by the following steps:

-   -   1) Select the nearest point of n among the L points in the        preceding sequence of Hilbert order as the attribute prediction        point of the current point, n is a natural number, and in this        example, n is 3: find three points closest to the current point        among the first 128 points of the current point under Hilbert        order, and set them as P_(i)=(X₁, Y_(i), Z_(i)), i=1, 2, 3, and        set their attribute values as (A_(i))_(i=1, 2, 3);    -   2) Use the weighted average value of the three attribute        prediction points to reconstruct the attribute values as the        attribute prediction value of the current point: the weight        (ω_(i))_(i=1,2,3) of the three points are obtained respectively.

${\omega_{i} = \frac{1}{d_{i}}},{i = 1},2,3$

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are the weighting coefficients of the three dimensions,        which are used to control the weight of the three dimensions. In        this embodiment, the weighting coefficients a, b, c are a=2, b=1        and c=3 respectively.

Use the following formula to calculate the weighted average of theattribute values of the three points P₁, P₂, P₃, and take the weightedaverage value as the attribute prediction value Â of the current point,

$\hat{A} = \frac{{\sum}_{i = 1}^{3}\omega_{i}A_{i}}{{\sum}_{i = 1}^{3}\omega_{i}}$

-   -   3) The attribute residual value R of the current point is        decoded from the bitstream;    -   4) According to the attribute prediction value of the current        point and the decoded attribute residual value, the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 22

A point cloud attribute decoding device based on a new processing orderin this embodiment includes the following modules.

The binary bits of the three-dimensional geometric coordinates (X₁, X₂,X₃)_(N) of the reconstructed points in the point cloud are processed inorder from high to low, and the i th processing: According to the(3*m_(i)) binary bits in the three-dimensional geometric coordinates ofthe reconstructed points, the corresponding Hilbert code is generated.In this embodiment, N=bitWidth and is an even number. X₁=x, X₂=y, X₃=z.Only 2 bits are processed each time, that is, m_(i)=2, p=bitWidth/2.ConvertCode^(m) ^(i) corresponds to HilbertTable [state] [pos] [1],ConvertState^(m) ^(i) corresponds to HilbertTable [state] [pos] [0]. TheHilbert code HCode of the decoded point is obtained by the followingmethod:

HCode= 0;  state = 4;  for (i = bitWidth−2; i >= 0; i−=2) {  HilbertCode <<= 6;   bx = (x >> i) & 3;   by = (y >> i) & 3;   bz =(z >> i) & 3;   pos = (bx << 4) | (by << 2) | bz;   HilbertCode +=HilbertTable [state][pos][1];   state = HilbertTable [state][pos][0]; }

-   -   Where >> refers to bitwise right shift operation and << refers        to bitwise left shift operation, and the lookup table        HilbertCode used is as follows:

HilbertTable [12][64][2] = { {{4, 0}, {10, 3}, {6, 60}, {2, 63}, {9, 7},{10, 4}, {6, 59}, {8, 56}, {0, 8}, {5, 9}, {1, 54}, {0, 55}, {8, 11},{5, 10}, {1, 53}, {9, 52}, {0, 1}, {0, 2}, {0, 61}, {0, 62}, {7, 6}, {7,5}, {7, 58}, {7, 57}, {11, 15}, {6, 14}, {10, 49}, {11, 48}, {8, 12},{6, 13}, {10, 50}, {9, 51}, {9, 26}, {8, 29}, {9, 34}, {8, 37}, {0, 27},{0, 28}, {0, 35}, {0, 36}, {0, 16}, {5, 17}, {1, 46}, {0, 47}, {8, 19},{5, 18}, {1, 45}, {9, 44}, {9, 25}, {8, 30}, {9, 33}, {8, 38}, {6, 24},{10, 31}, {6, 32}, {10, 39}, {11, 23}, {6, 22}, {10, 41}, {11, 40}, {8,20}, {6, 21}, {10, 42}, {9, 43}}, {{11, 38}, {11, 37}, {1, 62}, {0, 63},{3, 33}, {3, 34}, {1, 61}, {9, 60}, {11, 30}, {11, 29}, {1, 2}, {4, 3},{3, 25}, {3, 26}, {1, 1}, {7, 0}, {4, 39}, {1, 36}, {10, 57}, {11, 56},{9, 32}, {1, 35}, {10, 58}, {9, 59}, {4, 31}, {1, 28}, {10, 5}, {4, 4},{9, 24}, {1, 27}, {10, 6}, {3, 7}, {5, 40}, {1, 47}, {5, 48}, {1, 55},{4, 41}, {2, 46}, {4, 49}, {2, 54}, {9, 22}, {8, 17}, {9, 14}, {8, 9},{5, 23}, {1, 16}, {5, 15}, {1, 8}, {3, 43}, {3, 44}, {3, 51}, {3, 52},{4, 42}, {2, 45}, {4, 50}, {2, 53}, {9, 21}, {8, 18}, {9, 13}, {8, 10},{11, 20}, {11, 19}, {11, 12}, {11, 11}}, {{6, 52}, {2, 55}, {5, 56}, {1,63}, {6, 51}, {8, 48}, {4, 57}, {2, 62}, {6, 44}, {2, 47}, {2, 36}, {5,37}, {6, 43}, {8, 40}, {7, 39}, {5, 38}, {0, 53}, {0, 54}, {3, 59}, {3,60}, {7, 50}, {7, 49}, {4, 58}, {2, 61}, {0, 45}, {0, 46}, {2, 35}, {6,34}, {7, 42}, {7, 41}, {3, 32}, {6, 33}, {11, 10}, {11, 9}, {7, 4}, {7,3}, {3, 13}, {3, 14}, {4, 5}, {2, 2}, {11, 18}, {11, 17}, {2, 28}, {5,29}, {3, 21}, {3, 22}, {7, 31}, {5, 30}, {5, 11}, {2, 8}, {6, 7}, {10,0}, {5, 12}, {8, 15}, {4, 6}, {2, 1}, {5, 19}, {2, 16}, {2, 27}, {6,26}, {5, 20}, {8, 23}, {3, 24}, {6, 25}}, {{2, 20}, {5, 21}, {1, 42},{4, 43}, {7, 23}, {5, 22}, {1, 41}, {7, 40}, {5, 24}, {1, 31}, {5, 32},{1, 39}, {4, 25}, {2, 30}, {4, 33}, {2, 38}, {2, 19}, {6, 18}, {10, 45},{4, 44}, {3, 16}, {6, 17}, {10, 46}, {3, 47}, {3, 27}, {3, 28}, {3, 35},{3, 36}, {4, 26}, {2, 29}, {4, 34}, {2, 37}, {2, 12}, {5, 13}, {1, 50},{4, 51}, {7, 15}, {5, 14}, {1, 49}, {7, 48}, {11, 6}, {11, 5}, {11, 58},{11, 57}, {3, 1}, {3, 2}, {3, 61}, {3, 62}, {2, 11}, {6, 10}, {10, 53},{4, 52}, {3, 8}, {6, 9}, {10, 54}, {3, 55}, {4, 7}, {1, 4}, {5, 59}, {2,56}, {9, 0}, {1, 3}, {5, 60}, {8, 63}}, {{5, 0}, {1, 7}, {4, 8}, {10,11}, {4, 1}, {2, 6}, {9, 15}, {10, 12}, {1, 26}, {4, 27}, {4, 16}, {10,19}, {1, 25}, {7, 24}, {9, 23}, {10, 20}, {3, 3}, {3, 4}, {0, 9}, {0,10}, {4, 2}, {2, 5}, {7, 14}, {7, 13}, {10, 29}, {4, 28}, {0, 17}, {0,18}, {10, 30}, {3, 31}, {7, 22}, {7, 21}, {7, 60}, {7, 59}, {11, 54},{11, 53}, {4, 61}, {2, 58}, {3, 49}, {3, 50}, {1, 34}, {4, 35}, {11,46}, {11, 45}, {1, 33}, {7, 32}, {3, 41}, {3, 42}, {6, 63}, {10, 56},{4, 55}, {1, 52}, {4, 62}, {2, 57}, {9, 48}, {1, 51}, {10, 37}, {4, 36},{4, 47}, {1, 44}, {10, 38}, {3, 39}, {9, 40}, {1, 43}}, {{0, 0}, {5, 1},{11, 26}, {11, 25}, {8, 3}, {5, 2}, {3, 29}, {3, 30}, {2, 60}, {5, 61},{11, 34}, {11, 33}, {7, 63}, {5, 62}, {3, 37}, {3, 38}, {11, 7}, {6, 6},{5, 27}, {2, 24}, {8, 4}, {6, 5}, {5, 28}, {8, 31}, {2, 59}, {6, 58},{5, 35}, {2, 32}, {3, 56}, {6, 57}, {5, 36}, {8, 39}, {5, 8}, {1, 15},{5, 16}, {1, 23}, {4, 9}, {2, 14}, {4, 17}, {2, 22}, {9, 54}, {8, 49},{9, 46}, {8, 41}, {5, 55}, {1, 48}, {5, 47}, {1, 40}, {3, 11}, {3, 12},{3, 19}, {3, 20}, {4, 10}, {2, 13}, {4, 18}, {2, 21}, {9, 53}, {8, 50},{9, 45}, {8, 42}, {11, 52}, {11, 51}, {11, 44}, {11, 43}}, {{7, 52}, {7,51}, {7, 44}, {7, 43}, {4, 53}, {2, 50}, {4, 45}, {2, 42}, {9, 10}, {8,13}, {9, 18}, {8, 21}, {0, 11}, {0, 12}, {0, 19}, {0, 20}, {6, 55}, {10,48}, {6, 47}, {10, 40}, {4, 54}, {2, 49}, {4, 46}, {2, 41}, {9, 9}, {8,14}, {9, 17}, {8, 22}, {6, 8}, {10, 15}, {6, 16}, {10, 23}, {0, 56}, {5,57}, {6, 36}, {2, 39}, {8, 59}, {5, 58}, {6, 35}, {8, 32}, {2, 4}, {5,5}, {6, 28}, {2, 31}, {7, 7}, {5, 6}, {6, 27}, {8, 24}, {11, 63}, {6,62}, {0, 37}, {0, 38}, {8, 60}, {6, 61}, {7, 34}, {7, 33}, {2, 3}, {6,2}, {0, 29}, {0, 30}, {3, 0}, {6, 1}, {7, 26}, {7, 25}}, {{2, 52}, {5,53}, {1, 10}, {4, 11}, {7, 55}, {5, 54}, {1, 9}, {7, 8}, {4, 56}, {10,59}, {6, 4}, {2, 7}, {9, 63}, {10, 60}, {6, 3}, {8, 0}, {2, 51}, {6,50}, {10, 13}, {4, 12}, {3, 48}, {6, 49}, {10, 14}, {3, 15}, {0, 57},{0, 58}, {0, 5}, {0, 6}, {7, 62}, {7, 61}, {7, 2}, {7, 1}, {2, 44}, {5,45}, {1, 18}, {4, 19}, {7, 47}, {5, 46}, {1, 17}, {7, 16}, {7, 36}, {7,35}, {7, 28}, {7, 27}, {4, 37}, {2, 34}, {4, 29}, {2, 26}, {2, 43}, {6,42}, {10, 21}, {4, 20}, {3, 40}, {6, 41}, {10, 22}, {3, 23}, {6, 39},{10, 32}, {6, 31}, {10, 24}, {4, 38}, {2, 33}, {4, 30}, {2, 25}}, {{6,20}, {2, 23}, {0, 24}, {5, 25}, {6, 19}, {8, 16}, {8, 27}, {5, 26}, {6,12}, {2, 15}, {9, 6}, {8, 1}, {6, 11}, {8, 8}, {5, 7}, {1, 0}, {0, 21},{0, 22}, {11, 31}, {6, 30}, {7, 18}, {7, 17}, {8, 28}, {6, 29}, {0, 13},{0, 14}, {9, 5}, {8, 2}, {7, 10}, {7, 9}, {11, 4}, {11, 3}, {11, 42},{11, 41}, {0, 32}, {5, 33}, {3, 45}, {3, 46}, {8, 35}, {5, 34}, {11,50}, {11, 49}, {9, 58}, {8, 61}, {3, 53}, {3, 54}, {0, 59}, {0, 60}, {5,43}, {2, 40}, {11, 39}, {6, 38}, {5, 44}, {8, 47}, {8, 36}, {6, 37}, {5,51}, {2, 48}, {9, 57}, {8, 62}, {5, 52}, {8, 55}, {6, 56}, {10, 63}},{{1, 38}, {0, 39}, {4, 40}, {10, 43}, {1, 37}, {9, 36}, {9, 47}, {10,44}, {9, 62}, {8, 57}, {4, 48}, {10, 51}, {5, 63}, {1, 56}, {9, 55},{10, 52}, {10, 33}, {11, 32}, {0, 41}, {0, 42}, {10, 34}, {9, 35}, {7,46}, {7, 45}, {9, 61}, {8, 58}, {0, 49}, {0, 50}, {11, 60}, {11, 59},{7, 54}, {7, 53}, {1, 30}, {0, 31}, {11, 22}, {11, 21}, {1, 29}, {9,28}, {3, 17}, {3, 18}, {9, 2}, {8, 5}, {11, 14}, {11, 13}, {0, 3}, {0,4}, {3, 9}, {3, 10}, {10, 25}, {11, 24}, {4, 23}, {1, 20}, {10, 26}, {9,27}, {9, 16}, {1, 19}, {9, 1}, {8, 6}, {4, 15}, {1, 12}, {6, 0}, {10,7}, {9, 8}, {1, 11}}, {{7, 20}, {7, 19}, {7, 12}, {7, 11}, {4, 21}, {2,18}, {4, 13}, {2, 10}, {9, 42}, {8, 45}, {9, 50}, {8, 53}, {0, 43}, {0,44}, {0, 51}, {0, 52}, {6, 23}, {10, 16}, {6, 15}, {10, 8}, {4, 22}, {2,17}, {4, 14}, {2, 9}, {9, 41}, {8, 46}, {9, 49}, {8, 54}, {6, 40}, {10,47}, {6, 48}, {10, 55}, {4, 24}, {10, 27}, {1, 6}, {0, 7}, {9, 31}, {10,28}, {1, 5}, {9, 4}, {4, 32}, {10, 35}, {1, 58}, {4, 59}, {9, 39}, {10,36}, {1, 57}, {7, 56}, {0, 25}, {0, 26}, {10, 1}, {11, 0}, {7, 30}, {7,29}, {10, 2}, {9, 3}, {0, 33}, {0, 34}, {10, 61}, {4, 60}, {7, 38}, {7,37}, {10, 62}, {3, 63}}, {{9, 38}, {8, 33}, {9, 30}, {8, 25}, {5, 39},{1, 32}, {5, 31}, {1, 24}, {0, 40}, {5, 41}, {1, 22}, {0, 23}, {8, 43},{5, 42}, {1, 21}, {9, 20}, {9, 37}, {8, 34}, {9, 29}, {8, 26}, {11, 36},{11, 35}, {11, 28}, {11, 27}, {11, 47}, {6, 46}, {10, 17}, {11, 16}, {8,44}, {6, 45}, {10, 18}, {9, 19}, {11, 62}, {11, 61}, {11, 2}, {11, 1},{3, 57}, {3, 58}, {3, 5}, {3, 6}, {0, 48}, {5, 49}, {1, 14}, {0, 15},{8, 51}, {5, 50}, {1, 13}, {9, 12}, {4, 63}, {1, 60}, {5, 3}, {2, 0},{9, 56}, {1, 59}, {5, 4}, {8, 7}, {11, 55}, {6, 54}, {10, 9}, {11, 8},{8, 52}, {6, 53}, {10, 10}, {9, 11}}}; {{9, 38}, {8, 33}, {9, 30}, {8,25}, {5, 39}, {1, 32}, {5, 31}, {1, 24}, {0, 40}, {5, 41}, {1, 22}, {0,23}, {8, 43}, {5, 42}, {1, 21}, {9, 20}, {9, 37}, {8, 34}, {9, 29}, {8,26}, {11, 36}, {11, 35}, {11, 28}, {11, 27}, {11, 47}, {6, 46}, {10,17}, {11, 16}, {8, 44}, {6, 45}, {10, 18}, {9, 19}, {11, 62}, {11, 61},{11, 2}, {11, 1}, {3, 57}, {3, 58}, {3, 5}, {3, 6}, {0, 48}, {5, 49},{1, 14}, {0, 15}, {8, 51}, {5, 50}, {1, 13}, {9, 12}, {4, 63}, {1, 60},{5, 3}, {2, 0}, {9, 56}, {1, 59}, {5, 4}, {8, 7}, {11, 55}, {6, 54},{10, 9}, {11, 8}, {8, 52}, {6, 53}, {10, 10}, {9, 11}}};

Attribute decoding module: the input of the module is attributebitstream and the output is reconstructed attribute of the point cloud.According to the Hilbert order from small to large or from large tosmall, the reconstructed attribute information of the point cloud isdecoded from the bitstream in order, and the attribute value of thecurrent point is processed by the following steps:

-   -   3) Attribute prediction point acquisition module: The input of        this module is the reconstructed point cloud, and the output is        the attribute prediction point of the current point. The module        selects the nearest point of n among the L points in the        preceding sequence of Hilbert order as the attribute prediction        point of the current point, n is a natural number, and in this        example, n is 3: find three points closest to the current point        among the first 128 points of the current point under Hilbert        order, and set them as P_(i)=(X_(i), Y_(i), Z_(i)) i=1, 2, 3,        and set their attribute values as (A_(i))_(i=1, 2, 3);    -   4) Attribute prediction value calculation module: the input of        the module is the attribute prediction point, and the output is        the attribute prediction value of the current point. The module        uses the weighted average value of the three attribute        prediction points to reconstruct the attribute values as the        attribute prediction value of the current point: the weight        (ω_(i))_(i=1,2,3) of the three points are obtained respectively,

${\omega_{i} = \frac{1}{d_{i}}},{i = 1},2,3$

Among them, d_(i) is the distance between the point P_(i) and thecurrent point (X, Y, Z), which can be at least one of the followingdistances:

-   -   Euclidean distance: d_(i)=√{square root over        (a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²)}    -   Square of Euclidean distance:        d_(i)=a(X_(i)−X)²+b(Y_(i)−Y)²+c(Z_(i)−Z)²    -   Chebyshev distance: d_(i)=max(a|X_(i)−X|, b|Y_(i)−Y|,        c|Z_(i)−Z|)    -   Manhattan distance: d_(i)=a|X_(i)−X|+b|Y_(i)−Y|+c|Z_(i)−Z|    -   a, b, c are the weighting coefficients of the three dimensions,        which are used to control the weight of the three dimensions. In        this embodiment, the weighting coefficients a, b, c are a=2, b=1        and c=3 respectively.

Use the following formula to calculate the weighted average of theattribute values of the three points P₁, P₂, P₃, and take the weightedaverage value as the attribute prediction value Â of the current point,

$\hat{A} = \frac{{\sum}_{i = 1}^{3}\omega_{i}A_{i}}{{\sum}_{i = 1}^{3}\omega_{i}}$

-   -   3) The attribute residual value R of the current point is        decoded from the bitstream;    -   4) According to the attribute prediction value of the current        point and the decoded attribute residual value, the        reconstructed attribute value of the current point is A=Â+R.

Embodiment 23

A method for generating a new processing order in this embodimentincludes the following contents.

For the reconstructed point cloud geometry, the Hilbert codecorresponding to it is generated according to its three-dimensionalspatial coordinates. As mentioned above, for a given three-dimensionalcoordinate (X₁, X₂, X₃), the coordinates of the point are expanded inbinary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

The Hilbert code HCode_(N)(X₁, X₂, X₃)=(C₁C₂ . . . C_(n) . . .C_(N−1)C_(N)) of point (X₁, X₂, X₃) is obtained through the followingprocess, The Hilbert code has 3*N binary bits. C_(i), i=1, . . . , N, isthe i-th substring code composed of three binary bits, while C₁ is thehighest 3-bit subcode and C_(N) is the lowest 3-bit subcode. Hilbertcodes are obtained by performing the following calculations:

C₁ = f_(S₁)(x₁¹, x₂¹, x₃¹), S₁ ∈ [a, b, c, d, e, h, k, m, p, q, r, s]C₂ = f_(S₂)(x₁², x₂², x₃²), S₂ = g(S₁, C₁) …C_(n) = f_(S_(n))(x₁^(n), x₂^(n), x₃^(n)), S_(n) = g(S_(n − 1), C_(n − 1))…C_(N) = f_(S_(N))(x₁^(N), x₂^(N), x₃^(N)), S_(N) = g(S_(N − 1), C_(N − 1))

Among them,

_(i) is the state when the subcode C_(i−1) of the i-th string isgenerated, and

_(i) is one of the 12 states, as shown in FIG. 4 . Each statecorresponds to a conversion function

(x₁ ^(i),x₂ ^(i),x₃ ^(i)) of (x₁ ^(i),x₂ ^(i),x₃ ^(i)) to C_(i−1).

₁∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculating C₁,one of the 12 states should be selected as the initial value state, andthen each time

_(i) is calculated according to the mapping relationship defined by thefunction g(

_(i−1), C_(i−1)), which contains the upper state

_(i−1) corresponding to the subcode and the upper subcode C_(i−1)corresponding to the subcode. Until all subcodes C₁, C₂ . . . C_(N) arecalculated and all subcodes are arranged in order, the HilbertcodeHCode_(N)(X₁, X₂, X₃) of points with three-dimensional spacecoordinates (x₁ ^(i),x₂ ^(i),x₃ ^(i)) is obtained. The bits of thebinary code of the Hilbert code cannot form a one-to-one correspondencewith the bits of the binary code of the geometric coordinates.

The correspondence between the input x₁ ^(i),x₂ ^(i),x₃ ^(i) of amapping function ƒ_(a)(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponding to the 12states defined in FIG. 4 and the output C_(i) is as follows:

x₁ ^(n) x₂ ^(n) x₃ ^(n) C_(i) 0 0 0 000 0 0 1 001 0 1 0 011 0 1 1 010 10 0 111 1 0 1 110 1 1 0 100

The remaining functions are as follows:

ƒ_(b)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i) ,x ₃ ^(i) ,x ₁^(i)),ƒ_(c)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₃ ^(i) ,x ₁ ^(i) ,x ₂^(i)),

ƒ_(d)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₁ ^(i), x ₂ ^(i) , x ₃ ^(i)),ƒ_(e)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) , x ₃ ^(i) ,x ₁^(i)),ƒ_(h)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) ,x ₁ ^(i), x ₂ ^(i) ),

ƒ_(k)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) ,x ₂ ^(i), x ₃ ^(i)),ƒ_(m)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i), x ₃ ^(i) , x ₁^(i) ),ƒ_(p)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) , x ₁ ^(i) ,x ₂ ^(i)),

ƒ_(q)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) , x ₂ ^(i) ,x ₃^(i)),ƒ_(r)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) ,x ₃ ^(i), x ₁^(i) ),ƒ_(s)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)(x ₃ ^(i), x ₁ ^(i) , x ₂ ^(i) ),

The transformation relationship between the above maps has the samemeaning as the transformation relationship between the curvescorresponding to the state, the order exchange of the binary coordinatesinput by ƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the symmetry of theplane in the curve, and the reverse of the binary coordinates input byƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the rotation around the axisin the curve. The remaining mappings are shown in the following table:

C_(i) = f_(b)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(c)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 0 00 000 0 0 0 000 0 0 1 011 0 0 1 111 0 1 0 111 0 1 0 001 0 1 1 100 0 1 1110 1 0 0 001 1 0 0 011 1 0 1 010 1 0 1 100 1 1 0 110 1 1 0 010 1 1 1101 1 1 1 101

C_(i) = f_(d)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(e)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) C_(i) = f_(h)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 00 0 010 0 0 0 100 0 0 0 110 0 0 1 011 0 0 1 111 0 0 1 001 0 1 0 001 0 10 011 0 1 0 111 0 1 1 000 0 1 1 000 0 1 1 000 1 0 0 101 1 0 0 101 1 0 0101 1 0 1 100 1 0 1 110 1 0 1 010 1 1 0 110 1 1 0 010 1 1 0 100 1 1 1111 1 1 1 001 1 1 1 011

C_(i) = f_(k)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(m)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) C_(i) = f_(p)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 00 0 110 0 0 0 010 0 0 0 100 0 0 1 111 0 0 1 001 0 0 1 011 0 1 0 101 0 10 101 0 1 0 101 0 1 1 100 0 1 1 110 0 1 1 010 1 0 0 001 1 0 0 011 1 0 0111 1 0 1 000 1 0 1 000 1 0 1 000 1 1 0 010 1 1 0 100 1 1 0 110 1 1 1011 1 1 1 111 1 1 1 001

C_(i) = f_(q)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(r)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) C_(i) = f_(s)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 00 0 100 0 0 0 110 0 0 0 010 0 0 1 101 0 0 1 101 0 0 1 101 0 1 0 111 0 10 001 0 1 0 011 0 1 1 110 0 1 1 010 0 1 1 100 1 0 0 011 1 0 0 111 1 0 0001 1 0 1 010 1 0 1 100 1 0 1 110 1 1 0 000 1 1 0 000 1 1 0 000 1 1 1001 1 1 1 011 1 1 1 111

The function

_(i)=g(

_(i−1), C_(i−1)) is used to obtain the state

_(i) of the current level from the previous level state

_(i−1) and the previous level subcode C_(i−1), which is shown asfollows:

-   -   Table 1. the g function mapping relation to get        _(i) according to        _(i−1) and C_(i−1)

 _(i−1) C_(i−1) a b c d e h k m p q r s 000 c a b h d e p k m s q r 001b c a e h d m p k r s q 010 b c a e h d m p k r s q 011 q e p k b s d rc a m h 100 q e p k b s d r c a m h 101 m s d r p a b h q e c k 110 m sd r p a b h q e c k 111 h k r c q m s a e p d b

In this example, the numbers corresponding to the 12 states shown inFIG. 4 can be changed, but the g(

_(i−1), C_(i−1)) function in Table 1 should also be adjusted accordinglyso that the state transition relationship of

_(i) obtained from

_(i−1)) remains unchanged.

Embodiment 24

A method of generating a new processing order for this embodimentincludes the following

For the reconstructed point cloud geometry, the corresponding Hilbertcode is generated according to its three-dimensional space coordinates.As mentioned above, for a given three-dimensional coordinate of (X₁, X₂,X₃), its coordinates are expanded in binary as follows

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

The Hilbert code HCode_(N)(X₁, X₂, X₃)=(C₁C₂ . . . C_(n) . . .C_(N−1)C_(N)) of point (X₁, X₂, X₃) is obtained through the followingprocess, The Hilbert code has 3*N binary bits. C_(i), i=1, . . . , N, isthe i-th substring code composed of three binary bits, while C₁ is thehighest 3-bit subcode and C_(N) is the lowest 3-bit subcode. Hilbertcodes are obtained by performing the following calculations:

C₁ = f_(S₁)(x₁¹, x₂¹, x₃¹), S₁ ∈ [a, b, c, d, e, h, k, m, p, q, r, s]C₂ = f_(S₂)(x₁², x₂², x₃²), S₂ = g(S₁, C₁) …C_(n) = f_(S_(n))(x₁^(n), x₂^(n), x₃^(n)), S_(n) = g(S_(n − 1), C_(n − 1))…C_(N) = f_(S_(N))(x₁^(N), x₂^(N), x₃^(N)), S_(N) = g(S_(N − 1), C_(N − 1))

Among them,

_(i) is the state when the subcode C_(i−1) of the i-th string isgenerated, and

_(i) is one of the 12 states, as shown in FIG. 4 . Each statecorresponds to a conversion function

(x₁ ^(i),x₂ ^(i),x₃ ^(i)) of (x₁ ^(i),x₂ ^(i),x₃ ^(i)) to C_(i−1).

_(i)∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculatingC₁, one of the 12 states should be selected as the initial value state,and then each time

_(i) is calculated according to the mapping relationship defined by thefunction g(

_(i−1), C_(i−1)), which contains the upper state

_(i−1) corresponding to the subcode and the upper subcode C_(i−1)corresponding to the subcode. Until all subcodes C₁, C₂ . . . C_(N) arecalculated and all subcodes are arranged in order, the HilbertcodeHCode_(N)(X₁, X₂, X₃) of points with three-dimensional spacecoordinates (x₁ ^(i),x₂ ^(i),x₃ ^(i)) is obtained. The bits of thebinary code of the Hilbert code cannot form a one-to-one correspondencewith the bits of the binary code of the geometric coordinates.

The correspondence between the input x₁ ^(i),x₂ ^(i),x₃ ^(i) of amapping function ƒ_(a)(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponding to the 12states defined in FIG. 4 and the output C_(i) is as follows:

c ₁ ^(i) =x ₁ ^(i)

c ₂ ^(i) =x ₁ ^(i) −x ₂ ^(i)

c ₃ ^(i)= x ₁ ^(l) (x ₂ ^(i) ⊕x ₃ ^(i))+x ₁ ^(i)(x ₂ ^(i) ⊙x ₃ ^(i))

C _(i) =c ₁ ^(i) c ₂ ^(i) c ₃ ^(i)

Among them, ⊕ denotes the exclusive-or operation, and ⊙ denotes theinclusive-or operation. The mapping relationship between the remainingstates and ƒ_(a)(x₁ ^(i),x₂ ^(i),x₃ ^(i)) has the following operationalrelationship, where x denotes the reverse operation of x.

ƒ_(b)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i) ,x ₃ ^(i) ,x ₁^(i)),ƒ_(c)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₃ ^(i) ,x ₁ ^(i) ,x ₂^(i)),

ƒ_(d)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₁ ^(i), x ₂ ^(i) , x ₃ ^(i)),ƒ_(e)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) , x ₃ ^(i) ,x ₁^(i)),ƒ_(h)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) ,x ₁ ^(i), x ₂ ^(i) ),

ƒ_(k)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) ,x ₂ ^(i), x ₃ ^(i)),ƒ_(m)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i), x ₃ ^(i) , x ₁^(i) ),ƒ_(p)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) , x ₁ ^(i) ,x ₂ ^(i)),

ƒ_(q)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) , x ₂ ^(i) ,x ₃^(i)),ƒ_(r)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) ,x ₃ ^(i), x ₁^(i) ),ƒ_(s)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)(x ₃ ^(i), x ₁ ^(i) , x ₂ ^(i) ),

The transformation relationship between the above maps has the samemeaning as the transformation relationship between the curvescorresponding to the state, the order exchange of the binary coordinatesinput by ƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the symmetry of theplane in the curve, and the reverse of the binary coordinates input byƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the rotation around the axisin the curve.

The mapping relationship of the function

_(i)=g(

_(i−1), C_(i−1)) is shown in Table 2.

TABLE 2 the g function mapping relation to get 

 _(i) according to 

 _(i−1) and C_(i−1)

 _(i−1) C_(i−1) a b c d e h k m p q r s 000 c a b h d e p k m s q r 001b c a e h d m p k r s q 010 b c a e h d m p k r s q 011 q e p k b s d rc a m h 100 q e p k b s d r c a m h 101 m s d r p a b h q e c k 110 m sd r p a b h q e c k 111 h k r c q m s a e p d b

In this embodiment, the numbers corresponding to the 12 states shown inFIG. 4 can be changed, but the g(

_(i−1), C_(i−1)) function in Table 2 should also be adjusted accordinglyso that the state transition relationship of

_(i) obtained from

_(i−1)) remains unchanged.

Embodiment 25

A method of generating a new processing order for this embodimentincludes the following

For the reconstructed point cloud geometry, the corresponding Hilbertcode is generated according to its three-dimensional space coordinates.As mentioned above, for a given three-dimensional coordinate of (X₁, X₂,X₃), its coordinates are expanded in binary as follows

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

The Hilbert code HCode_(N)(X₁, X₂, X₃)=(C₁C₂ . . . C_(n) . . .C_(N−1)C_(N)) of point (X₁, X₂, X₃) is obtained through the followingprocess, The Hilbert code has 3*N binary bits. C_(i), i=1, . . . , N, isthe i-th substring code composed of three binary bits, while C₁ is thehighest 3-bit subcode and C_(N) is the lowest 3-bit subcode. Hilbertcodes are obtained by performing the following calculations:

C₁ = f_(S₁)(x₁¹, x₂¹, x₃¹), S₁ ∈ [a, b, c, d, e, h, k, m, p, q, r, s]C₂ = f_(S₂)(x₁², x₂², x₃²), S₂ = g(S₁, C₁) …C_(n) = f_(S_(n))(x₁^(n), x₂^(n), x₃^(n)), S_(n) = g(S_(n − 1), C_(n − 1))…C_(N) = f_(S_(N))(x₁^(N), x₂^(N), x₃^(N)), S_(N) = g(S_(N − 1), C_(N − 1))

Among them,

_(i) is the state when the subcode C_(i−1) of the i-th string isgenerated, and

_(i) is one of the 12 states, as shown in FIG. 4 . Each statecorresponds to a conversion function

(x₁ ^(i),x₂ ^(i),x₃ ^(i)) of (x₁ ^(i),x₂ ^(i),x₃ ^(i)) to C_(i−1).

₁∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculating C₁,one of the 12 states should be selected as the initial value state, andthen each time

_(i) is calculated according to the mapping relationship defined by thefunction g(

_(i−1), C_(i−1)), which contains the upper state

_(i−1) corresponding to the subcode and the upper subcode C_(i−1)corresponding to the subcode. Until all subcodes C₁, C₂ . . . C_(N) arecalculated and all subcodes are arranged in order, the HilbertcodeHCode_(N)(X₁, X₂, X₃) of points with three-dimensional spacecoordinates (x₁ ^(i),x₂ ^(i),x₃ ^(i)) is obtained. The bits of thebinary code of the Hilbert code cannot form a one-to-one correspondencewith the bits of the binary code of the geometric coordinates.

The correspondence between the input x₁ ^(i),x₂ ^(i),x₃ ^(i) and theoutput C_(i) of a mapping function ƒ_(a)(x₁ ^(i),x₂ ^(i),x₃ ^(i)) is asfollows:

C_(i) = f_(a)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(n) x₂ ^(n) x₃ ^(n) C_(i) 00 0 101 0 0 1 100 0 1 0 110 0 1 1 111 1 0 0 010 1 0 1 011 1 1 0 001 1 11 000

The remaining functions are as follows:

ƒ_(b)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i) ,x ₃ ^(i) ,x ₁^(i)),ƒ_(c)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₃ ^(i) ,x ₁ ^(i) ,x ₂^(i)),

ƒ_(d)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₁ ^(i), x ₂ ^(i) , x ₃ ^(i)),ƒ_(e)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) , x ₃ ^(i) ,x ₁^(i)),ƒ_(h)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) ,x ₁ ^(i), x ₂ ^(i) ),

ƒ_(k)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) ,x ₂ ^(i), x ₃ ^(i)),ƒ_(m)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i), x ₃ ^(i) , x ₁^(i) ),ƒ_(p)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) , x ₁ ^(i) ,x ₂ ^(i)),

ƒ_(q)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) , x ₂ ^(i) ,x ₃^(i)),ƒ_(r)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) ,x ₃ ^(i), x ₁^(i) ),ƒ_(s)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)(x ₃ ^(i), x ₁ ^(i) , x ₂ ^(i) ),

The transformation relationship between the above maps has the samemeaning as the transformation relationship between the curvescorresponding to the state, the order exchange of the binary coordinatesinput by ƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the symmetry of theplane in the curve, and the reverse of the binary coordinates input byƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the rotation around the axisin the curve.

The remaining mappings are shown in the following table:

C_(i) = f_(b)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(c)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 0 00 101 0 0 0 101 0 0 1 110 0 0 1 010 0 1 0 010 0 1 0 100 0 1 1 001 0 1 1011 1 0 0 100 1 0 0 110 1 0 1 111 1 0 1 001 1 1 0 011 1 1 0 111 1 1 1000 1 1 1 000

C_(i) = f_(d)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(e)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) C_(i) = f_(h)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 00 0 111 0 0 0 001 0 0 0 011 0 0 1 110 0 0 1 010 0 0 1 100 0 1 0 100 0 10 110 0 1 0 010 0 1 1 101 0 1 1 101 0 1 1 101 1 0 0 000 1 0 0 000 1 0 0000 1 0 1 001 1 0 1 011 1 0 1 111 1 1 0 011 1 1 0 111 1 1 0 001 1 1 1010 1 1 1 100 1 1 1 110

C_(i) = f_(k)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(m)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) C_(i) = f_(p)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 00 0 011 0 0 0 111 0 0 0 001 0 0 1 010 0 0 1 100 0 0 1 110 0 1 0 000 0 10 000 0 1 0 000 0 1 1 001 0 1 1 011 0 1 1 111 1 0 0 100 1 0 0 110 1 0 0010 1 0 1 101 1 0 1 101 1 0 1 101 1 1 0 111 1 1 0 001 1 1 0 011 1 1 1110 1 1 1 010 1 1 1 100

C_(i) = f_(q)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(r)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) C_(i) = f_(s)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 00 0 001 0 0 0 011 0 0 0 111 0 0 1 000 0 0 1 000 0 0 1 000 0 1 0 010 0 10 100 0 1 0 110 0 1 1 011 0 1 1 111 0 1 1 001 1 0 0 110 1 0 0 010 1 0 0100 1 0 1 111 1 0 1 001 1 0 1 011 1 1 0 101 1 1 0 101 1 1 0 101 1 1 1100 1 1 1 110 1 1 1 010

The function

_(i)=g(

_(i−1), C_(i−1)) is used to obtain the state

_(i) of the current level from the previous level state

_(i−1) and the previous level subcode C_(i−1), which is shown asfollows:

TABLE 3 the g function mapping relation to get 

 _(i) according to 

 _(i−1) and C_(i−1)

 _(i−1) C_(i−1) a b c d e h k m p q r s 000 c a b h d e p k m s q r 001b c a e h d m p k r s q 010 b c a e h d m p k r s q 011 q e p k b s d rc a m h 100 q e p k b s d r c a m h 101 m s d r p a b h q e c k 110 m sd r p a b h q e c k 111 h k r c q m s a e p d b

In this embodiment, the numbers corresponding to the 12 states can bechanged, but the g(

_(i−1), C_(i−1)) function in Table 3 should also be adjusted accordinglyso that the state transition relationship of

_(i) obtained from S

_(i−1)) remains unchanged.

Embodiment 26

A method of generating a new processing order for this embodimentincludes the following

For the reconstructed point cloud geometry, the corresponding Hilbertcode is generated according to its three-dimensional space coordinates.As mentioned above, for a given three-dimensional coordinate of (X₁, X₂,X₃), its coordinates are expanded in binary as follows

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

The Hilbert code HCode_(N)(X₁, X₂, X₃)=(C₁C₂ . . . C_(n) . . .C_(N−1)C_(N)) of point (X₁, X₂, X₃) is obtained through the followingprocess, The Hilbert code has 3*N binary bits. C_(i), i=1, . . . , N, isthe i-th substring code composed of three binary bits, while C₁ is thehighest 3-bit subcode and C_(N) is the lowest 3-bit subcode. Hilbertcodes are obtained by performing the following calculations:

C₁ = f_(S₁)(x₁¹, x₂¹, x₃¹), S₁ ∈ [a, b, c, d, e, h, k, m, p, q, r, s]C₂ = f_(S₂)(x₁², x₂², x₃²), S₂ = g(S₁, C₁) …C_(n) = f_(S_(n))(x₁^(n), x₂^(n), x₃^(n)), S_(n) = g(S_(n − 1), C_(n − 1))…C_(N) = f_(S_(N))(x₁^(N), x₂^(N), x₃^(N)), S_(N) = g(S_(N − 1), C_(N − 1))

Among them,

_(i) is the state when the subcode C_(i−1) of the i-th string isgenerated, and

_(i) is one of the 12 states, as shown in FIG. 4 . Each statecorresponds to a conversion function

(x₁ ^(i),x₂ ^(i),x₃ ^(i)) of (x₁ ^(i),x₂ ^(i),x₃ ^(i)) to C_(i−1).

_(i)∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculatingC₁, one of the 12 states should be selected as the initial value state,and then each time

_(i) is calculated according to the mapping relationship defined by thefunction g(

_(i−1), C_(i−1)), which contains the upper state

_(i−1) corresponding to the subcode and the upper subcode C_(i−1)corresponding to the subcode. Until all subcodes C₁, C₂ . . . C_(N) arecalculated and all subcodes are arranged in order, the HilbertcodeHCode_(N)(X₁, X₂, X₃) of points with three-dimensional spacecoordinates (x₁ ^(i),x₂ ^(i),x₃ ^(i)) is obtained. The bits of thebinary code of the Hilbert code cannot form a one-to-one correspondencewith the bits of the binary code of the geometric coordinates.

The correspondence between the input x₁ ^(i),x₂ ^(i),x₃ ^(i) of amapping function ƒ_(a)(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponding to the 12states defined in FIG. 4 and the output C_(i) is as follows:

c ₁ ^(i) =x ₁ ^(i)

c ₂ ^(i) =x ₁ ^(i) −x ₂ ^(i)

c ₃ ^(i)= x ₁ ^(l) (x ₂ ^(i) ⊕x ₃ ^(i))+x ₁ ^(i)(x ₂ ^(i) ⊙x ₃ ^(i))

C _(i) =c ₁ ^(i) c ₂ ^(i) c ₃ ^(i)

Among them, ⊕ denotes the exclusive-or operation, and ⊙ denotes theinclusive-or operation. The mapping relationship between the remainingstates and ƒ_(a)(x₁ ^(i),x₂ ^(i),x₃ ^(i)) has the following operationalrelationship, where x denotes the reverse operation of x.

ƒ_(b)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i) ,x ₃ ^(i) ,x ₁^(i)),ƒ_(c)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₃ ^(i) ,x ₁ ^(i) ,x ₂^(i)),

ƒ_(d)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₁ ^(i), x ₂ ^(i) , x ₃ ^(i)),ƒ_(e)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) , x ₃ ^(i) ,x ₁^(i)),ƒ_(h)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) ,x ₁ ^(i), x ₂ ^(i) ),

ƒ_(k)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) ,x ₂ ^(i), x ₃ ^(i)),ƒ_(m)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i), x ₃ ^(i) , x ₁^(i) ),ƒ_(p)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) , x ₁ ^(i) ,x ₂ ^(i)),

ƒ_(q)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) , x ₂ ^(i) ,x ₃^(i)),ƒ_(r)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) ,x ₃ ^(i), x ₁^(i) ),ƒ_(s)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)(x ₃ ^(i), x ₁ ^(i) , x ₂ ^(i) ),

The transformation relationship between the above maps has the samemeaning as the transformation relationship between the curvescorresponding to the state The order exchange of the binary coordinatesinput by ƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the symmetry of theplane in the curve, and the reverse of the binary coordinates input byƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the rotation around the axisin the curve.

The mapping relationship of the function

_(i)=g(

_(i−1), C_(i−1)) is shown in Table 4.

TABLE 4 the g function mapping relation to get 

 _(i) according to 

 _(i−1) and C_(i−1)

 _(i−1) C_(i−1) a b c d e h k m p q r s 000 c a b h d e p k m s q r 001b c a e h d m p k r s q 010 b c a e h d m p k r s q 011 q e p k b s d rc a m h 100 q e p k b s d r c a m h 101 m s d r p a b h q e c k 110 m sd r p a b h q e c k 111 h k r c q m s a e p d b

In this example, the numbers corresponding to the 12 states can bechanged, but the g (

_(i−1), C_(i−1)) function in Table 4 should also be adjusted accordinglyso that the state transition relationship of

_(i) obtained from

_(i−1)) remains unchanged.

Embodiment 27

A point cloud attribute decoding method based on a new processing orderfor this embodiment includes the following contents.

According to the three-dimensional geometric coordinates of all pointsin the point set, the corresponding Hilbert code is calculated by anymethod in embodiment 23 to embodiment 26, and then these points arereordered according to the Hilbert code values of these points, and themultiple points arranged in Hilbert order are obtained. The bits of thebinary code of the Hilbert code cannot form a one-to-one correspondencewith the bits of the binary code of the geometric coordinates.

The attribute residual values of multiple points are obtained bydecoding from the bitstream.

The attribute residual values of these points correspond to the Hilbertcodes of each point in the Hilbert order point set, and also correspondto the three-dimensional geometric coordinates of each point in theHilbert order. That is, the attribute residuals r₁, r₂, . . . decodedfrom the stream correspond to the points P₁, P₂, . . . sorted afterHilbert order.

Embodiment 28

A point cloud attribute decoding method based on a new processing orderfor this embodiment includes the following contents.

According to the three-dimensional geometric coordinates of all pointsin the point set, the corresponding Hilbert code is calculated by anymethod in embodiment 23 to embodiment 26, and then these points arereordered according to the Hilbert code values of these points, and themultiple points arranged in Hilbert order are obtained. The bits of thebinary code of the Hilbert code cannot form a one-to-one correspondencewith the bits of the binary code of the geometric coordinates.

In this paper, any method of embodiments 1 to 22 is used to decode theattribute residual value from the bitstream and predict the attributevalue of the decoding point, and then the reconstructed attribute valueof the point is obtained according to the attribute residual valuecorresponding to the point.

Embodiment 29

A point cloud attribute encoding method based on a new processing orderin this embodiment includes the following contents.

According to the three-dimensional geometric coordinates of all pointsin the point set, the corresponding Hilbert code is calculated by anymethod in embodiment 23 to embodiment 26, and then these points arereordered according to the Hilbert code values of these points, and themultiple points arranged in Hilbert order are obtained. The bits of thebinary code of the Hilbert code cannot form a one-to-one correspondencewith the bits of the binary code of the geometric coordinates.

Use any attribute prediction method of implementation examples 1 to 22to predict the attribute value of the coding point, and then obtain theattribute residual value of the point according to the actual attributevalue corresponding to the point.

Write the attribute residual values of multiple points to the bitstream.

Embodiment 30

A device for generating a new processing order of this embodimentincludes the following contents.

Subcode generation module: For the reconstructed point cloud geometry,for a given three-dimensional coordinate point (X₁, X₂, X₃), itscoordinates are expanded in binary as follows:

X ₁=(x ₁ ¹ x ₁ ² . . . x ₁ ^(n) . . . x ₁ ^(N−1) x ₁ ^(N)),X ₂=(x ₂ ¹ x₂ ² . . . x ₂ ^(n) . . . x ₂ ^(N−1) x ₂ ^(N)),X ₃=(x ₃ ¹ x ₃ ² . . . x ₃^(n) . . . x ₃ ^(N−1) x ₃ ^(N))

Input the binary bits x₁ ^(i),x₂ ^(i),x₃ ^(i) of its three-dimensionalspace coordinates, and output the corresponding Hilbert subcode C_(i),i=1, . . . , N, where the subcode is composed of three binary bits,while C₁ is the highest 3-bit subcode and C_(N) is the lowest 3-bitsubcode. Hilbert codes are obtained by performing the followingcalculations:

C _(i)=

(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))

State transition module:

$S_{i} = \left\{ \begin{matrix}{{{take}{any}{of}{the}{values}{in}}{\left\lbrack {a,b,c,d,e,h,k,m,p,q,r,s} \right\rbrack,}} & {i = 1} \\{{g\left( {S_{i - 1},C_{i - 1}} \right)},} & {i \neq 1}\end{matrix} \right.$

Among them,

_(i) is the state when the subcode C_(i−1) of the i-th string isgenerated, and

_(i) is one of the 12 states, as shown in FIG. 4 . Each statecorresponds to a conversion function

(x₁ ^(i),x₂ ^(i),x₃ ^(i)) of (x₁ ^(i),x₂ ^(i),x₃ ^(i)) to C_(i−1).

₁∈[a, b, c, d, e, h, k, m, p, q, r, s] means that when calculating C₁,one of the 12 states should be selected as the initial value state, andthen each time

_(i) is calculated according to the mapping relationship defined by thefunction g (

_(i−1), C_(i−1)), which contains the upper state

_(i−1) corresponding to the subcode and the upper subcode C_(i−1)corresponding to the subcode.

Hilbert code generation module: until all subcodes C₁, C₂ . . . C_(N)are calculated and all subcodes are arranged in order, the Hilbert codeHCode_(N)(X₁, X₂, X₃) of points with three-dimensional space coordinates(x₁ ^(i),x₂ ^(i),x₃ ^(i)) is obtained. The bits of the binary code ofthe Hilbert code cannot form a one-to-one correspondence with the bitsof the binary code of the geometric coordinates.

The correspondence between the input x₁ ^(i),x₂ ^(i),x₃ ^(i) and theoutput C_(i) of a mapping function ƒ_(a)(x₁ ^(i),x₂ ^(i),x₃ ^(i))defined in FIG. 4 is as follows:

C_(i) = f_(a)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(n) x₂ ^(n) x₃ ^(n) C_(i) 00 0 000 0 0 1 001 0 1 0 011 0 1 1 010 1 0 0 111 1 0 1 110 1 1 0 100 1 11 101

The remaining functions are as follows:

ƒ_(b)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i) ,x ₃ ^(i) ,x ₁^(i)),ƒ_(c)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₃ ^(i) ,x ₁ ^(i) ,x ₂^(i)),

ƒ_(d)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₁ ^(i), x ₂ ^(i) , x ₃ ^(i)),ƒ_(e)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) , x ₃ ^(i) ,x ₁^(i)),ƒ_(h)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) ,x ₁ ^(i), x ₂ ^(i) ),

ƒ_(k)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) ,x ₂ ^(i), x ₃ ^(i)),ƒ_(m)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)(x ₂ ^(i), x ₃ ^(i) , x ₁^(i) ),ƒ_(p)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)( x ₃ ^(i) , x ₁ ^(i) ,x ₂ ^(i)),

ƒ_(q)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₁ ^(i) , x ₂ ^(i) ,x ₃^(i)),ƒ_(r)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=ƒ_(a)( x ₂ ^(i) ,x ₃ ^(i), x ₁^(i) ),ƒ_(s)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i))=

ƒ_(a)(x ₃ ^(i), x ₁ ^(i) , x ₂ ^(i) ),

The transformation relationship between the above maps has the samemeaning as the transformation relationship between the curvescorresponding to the state, the order exchange of the binary coordinatesinput by ƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the symmetry of theplane in the curve, and the reverse of the binary coordinates input byƒ(x₁ ^(i),x₂ ^(i),x₃ ^(i)) corresponds to the rotation around the axisin the curve.

The remaining mappings are shown in the following table:

C_(i) = f_(b)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(c)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 0 00 000 0 0 0 000 0 0 1 011 0 0 1 111 0 1 0 111 0 1 0 001 0 1 1 100 0 1 1110 1 0 0 001 1 0 0 011 1 0 1 010 1 0 1 100 1 1 0 110 1 1 0 010 1 1 1101 1 1 1 101

C_(i) = f_(d)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(e)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) C_(i) = f_(h)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 00 0 010 0 0 0 100 0 0 0 110 0 0 1 011 0 0 1 111 0 0 1 001 0 1 0 001 0 10 011 0 1 0 111 0 1 1 000 0 1 1 000 0 1 1 000 1 0 0 101 1 0 0 101 1 0 0101 1 0 1 100 1 0 1 110 1 0 1 010 1 1 0 110 1 1 0 010 1 1 0 100 1 1 1111 1 1 1 001 1 1 1 011

C_(i) = f_(k)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(m)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) C_(i) = f_(p)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 00 0 110 0 0 0 010 0 0 0 100 0 0 1 111 0 0 1 001 0 0 1 011 0 1 0 101 0 10 101 0 1 0 101 0 1 1 100 0 1 1 110 0 1 1 010 1 0 0 001 1 0 0 011 1 0 0111 1 0 1 000 1 0 1 000 1 0 1 000 1 1 0 010 1 1 0 100 1 1 0 110 1 1 1011 1 1 1 111 1 1 1 001

C_(i) = f_(q)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) C_(i) = f_(r)(x₁ ^(i), x₂ ^(i),x₃ ^(i)) C_(i) = f_(s)(x₁ ^(i), x₂ ^(i), x₃ ^(i)) x₁ ^(i) x₂ ^(i) x₃^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 00 0 100 0 0 0 110 0 0 0 010 0 0 1 101 0 0 1 101 0 0 1 101 0 1 0 111 0 10 001 0 1 0 011 0 1 1 110 0 1 1 010 0 1 1 100 1 0 0 011 1 0 0 111 1 0 0001 1 0 1 010 1 0 1 100 1 0 1 110 1 1 0 000 1 1 0 000 1 1 0 000 1 1 1001 1 1 1 011 1 1 1 111

The function

_(i)=g(

_(i−1), C_(i−1)) is used to obtain the state

_(i) of the current level from the previous level state

_(i−1) and the previous level subcode C_(i−1), which is shown asfollows:

TABLE 5 the g function mapping relation to get 

 _(i) according to 

 _(i−1) and C_(i−1)

 _(i−1) C_(i−1) a b c d e h k m p q r s 000 c a b h d e p k m s q r 001b c a e h d m p k r s q 010 b c a e h d m p k r s q 011 q e p k b s d rc a m h 100 q e p k b s d r c a m h 101 m s d r p a b h q e c k 110 m sd r p a b h q e c k 111 h k r c q m s a e p d b

In this embodiment, the numbers corresponding to the 12 states shown inFIG. 4 can be changed, but the g(

_(i−1), C_(i−1)) function in Table 5 should also be adjusted accordinglyso that the state transition relationship of

_(i) obtained from

_(i−1)) remains unchanged.

Embodiment 31

A device for generating a new processing order of this embodimentincludes the following contents.

Using the subcode generation module, state transition module and Hilbertcode generation module of embodiment 30, the corresponding Hilbert codeis output for the input three-dimensional coordinates of (X₁, X₂, X₃).

The Hilbert sorting module: input the Hilbert code of multiple points,reorder these points according to the Hilbert code value of thesepoints, and output the multiple points arranged in Hilbert order. Thebits of the binary code of the Hilbert code cannot form a one-to-onecorrespondence with the bits of the binary code of the geometriccoordinates;

according to the attribute residual decoding module of embodiments 6 to10 and 20 to 22, the attribute residual values of the multiple pointsare obtained by decoding from the stream.

The attribute residual corresponding module: the respective attributeresidual values of the multiple points correspond to the Hilbert code ofeach point in the Hilbert order, and also correspond to thethree-dimensional geometric coordinates of each point in the Hilbertorder.

According to the attribute prediction value acquisition module and thereconstructed attribute value acquisition module of implementationexamples 6 to 10 and implementation examples 20 to 22, the input of theattribute prediction value acquisition module is the reconstructed pointcloud, and the attribute prediction value of these points is output. Thereconstructed attribute value acquisition module inputs the attributeprediction value and the attribute residual value corresponding to thereconstructed point to obtain the reconstructed attribute value of thecurrent point.

Finally, we need to explain all the above implementation methods, suchas the implementation methods of

(x₁ ^(i),x₂ ^(i),x₃ ^(i)), g(

_(i−1), C_(i−1)), including but not limited to functions, lookup tables,fixed circuit implementations, or state transitions using statemachines.

1. A decoding method of point cloud attribute, comprising: according tothe three-dimensional geometric coordinates of points, the correspondingHilbert codes of these points are calculated; according to the Hilbertcode values of these points, the points are reordered and then thepoints arranged in Hilbert order are obtained, wherein the bits of thebinary code of the Hilbert code cannot form a one-to-one correspondencewith the bits of the binary code of the geometric coordinates; theattribute residual values of the points are obtained by decoding themfrom the bitstream in order; the attribute residuals of each pointcorrespond to its Hilbert code in the Hilbert order and also correspondto its three-dimensional geometric coordinates in the Hilbert order. 2.The decoding method of point cloud attribute according to claim 1,wherein the calculation of Hilbert code of the point according to thethree-dimensional geometric coordinates of the point comprises:according to the three-dimensional geometric coordinates of the point(X₁, X₂, X₃), where X₁=(x₁ ¹x₁ ² . . . x₁ ^(n) . . . x₁ ^(N−1)x₁ ^(N)),X₂=(x₂ ¹x₂ ² . . . x₂ ^(n) . . . x₂ ^(N−1)x₂ ^(N)), X₃=(x₃ ¹x₃ ² . . .x₃ ^(n) . . . x₃ ^(N−1)x₃ ^(N)), where each x_(j) ^(i) is a binary bit,and N is the bit-depth of the geometric coordinates, according to theorder of i=1, . . . n, . . . , N, that is, the order from high-bit tolow-bit of the three-dimensional geometric coordinates, thecorresponding Hilbert code C_(i) is generated by binary bits (x₁ ^(i),x₂^(i),x₃ ^(i)) of each group and the state

_(i):C _(i)=

(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i)) among them,$S_{i} = \left\{ \begin{matrix}{{{take}{any}{of}{the}{values}{in}}{\left\lbrack {a,b,c,d,e,h,k,m,p,q,r,s} \right\rbrack,}} & {i = 1} \\{{g\left( {S_{i - 1},C_{i - 1}} \right)},} & {i \neq 1}\end{matrix} \right.$ all the sub-codes C_(n) of the Hilbert code beingarranged in order as C₁C₂ . . . C_(N), to obtain the Hilbert codeHCode=C₁C₂ . . . C_(N) of the three-dimensional geometric coordinates(X₁, X₂, X₃), N is the bit-depth of the geometric coordinate.
 3. Thedecoding method of point cloud attribute according to claim 2, whereinthe function

(x₁ ^(i),x₂ ^(i),x₃ ^(i)) is defined as one of the ƒ_(a)(x₁ ^(i),x₂^(i),x₃ ^(i)), ƒ_(b)(x₁ ^(i),x₂ ^(i),x₃ ^(i)), ƒ_(c)(x₁ ^(i),x₂ ^(i),x₃^(i)) ƒ_(d)(x₁ ^(i),x₂ ^(i),x₃ ^(i)), ƒ_(e)(x₁ ^(i),x₂ ^(i),x₃ ^(i)),ƒ_(h)(x₁ ^(i),x₂ ^(i),x₃ ^(i)), ƒ_(k)(x₁ ^(i),x₂ ^(i),x₃ ^(i)), ƒ_(m)(x₁^(i),x₂ ^(i),x₃ ^(i)), ƒ_(p)(x₁ ^(i),x₂ ^(i),x₃ ^(i)), ƒ_(q)(x₁ ^(i),x₂^(i),x₃ ^(i)), ƒ_(r)(x₁ ^(i),x₂ ^(i),x₃ ^(i)), ƒ_(s)(x₁ ^(i),x₂ ^(i),x₃^(i)): the correspondence between the input x₁ ^(i),x₂ ^(i),x₃ ^(i) ofthe function ƒ_(a)(x₁ ^(i),x₂ ^(i),x₃ ^(i)) and the output C_(i) is asfollows: x₁ ^(i) x₂ ^(i) x₃ ^(i) C_(i) 0 0 0 000 0 0 1 001 0 1 0 011 0 11 010 1 0 0 111 1 0 1 110 1 1 0 100 1 1 1 101

other functions are as follows: ƒ_(b)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃^(i))=ƒ_(a)(x ₂ ^(i) ,x ₃ ^(i) ,x ₁ ^(i)), ƒ_(c)(x ₁ ^(i) ,x ₂ ^(i) ,x ₃^(i))=ƒ_(a)(x ₃ ^(i) ,x ₁ ^(i) ,x ₂ ^(i)), ƒ_(d)(x₁ ^(i),x₂ ^(i),x₃^(i))=ƒ_(a)(x₁ ^(i),x₂ ^(i) ,x₃ ^(i) ), ƒ_(e)(x₁ ^(i),x₂ ^(i),x₃^(i))=ƒ_(a)(x₂ ^(i) ,x₃ ^(i) ,x₁ ^(i)), ƒ_(h)(x₁ ^(i),x₂ ^(i),x₃^(i))=ƒ_(a)(x₃ ^(i) ,x₁ ^(i),x₂ ^(i) ), ƒ_(k)(x₁ ^(i),x₂ ^(i),x₃^(i))=ƒ_(a)(x₁ ^(i) ,x₂ ^(i),x₃ ^(i) ), ƒ_(m)(x₁ ^(i),x₂ ^(i),x₃^(i))=ƒ_(a)(x₂ ^(i),x₃ ^(i) ,x₁ ^(i) ), ƒ_(p)(x₁ ^(i),x₂ ^(i),x₃^(i))=ƒ_(a)(x₃ ^(i) ,x₁ ^(i) ,x₂ ^(i)), ƒ_(q)(x₁ ^(i),x₂ ^(i),x₃^(i))=ƒ_(a)(x₁ ^(i) ,x₂ ^(i) ,x₃ ^(i)), ƒ_(r)(x₁ ^(i),x₂ ^(i),x₃^(i))=ƒ_(a)(x₂ ^(i) ,x₃ ^(i),x₁ ^(i) ), ƒ_(s)(x₁ ^(i),x₂ ^(i),x₃^(i))=ƒ_(a)(x₃ ^(i),x₁ ^(i) ,x₂ ^(i) ).
 4. The decoding method of pointcloud attribute according to claim 2, wherein the function g(

_(i−1), C_(i−1)) is to obtain the current state

_(i) based on the previous state

_(i−1) and the previous sub-code C_(i−1) as shown in the followingtable:

 _(i−1) C_(i−1) a b c d e h k m p q r s 000 c a b h d e p k m s q r 001b c a e h d m p k r s q 010 b c a e h d m p k r s q 011 q e p k b s d rc a m h 100 q e p k b s d r c a m h 101 m s d r p a b h q e c k 110 m sd r p a b h q e c k 111 h k r c q m s a e p d b


5. The decoding method of point cloud attribute according to claim 1,further comprising: n decoded points as the reference points of thecurrent point are selected, where n is a natural number; the weightedaverage of the reconstructed attribute values of these n referencepoints is used as the attribute prediction value of the current points;according to the attribute prediction value of the current point and itscorresponding attribute residual value, the reconstructed attributevalue of the current point is obtained.
 6. The decoding method of pointcloud attribute according to claim 5, wherein the weighted average ofthe reconstructed attribute values of the n reference points comprises:the top n points of the Hilbert order of the current point are selectedas the reference points of the current point, n is a natural number; theaverage of the reconstructed attribute values of the n reference pointsis used as the attribute prediction value of the current point.
 7. Thedecoding method of point cloud attribute according to claim 5, whereinthe weighted average of the reconstructed attribute values of the nreference points comprises: in the top L points of the Hilbert order ofthe current point, n points closest to the current point are selected asthe reference points of the current point, L being greater than or equalto n, and n being a natural number; the distance-weighted average of thereconstructed attribute values of the n reference points is used as theattribute prediction value of the current point.
 8. The decoding methodof point cloud attribute according to claim 5, wherein the weightedaverage of the reconstructed attribute values of the n reference pointscomprises: in the top L points of the Hilbert order of the currentpoint, n coplanar points and collinear points of the current point areselected as the reference points of the current point, wherein each ofthe coplanar points is the point located in its cube that has a commonsurface with the cube where the current point is located, and each ofthe collinear points is the point located in its cube that has a commonedge with the cube the current point located in, L being greater than orequal to n; weights ω_(pl) and ω_(po) are given to coplanar points andcollinear points, where ω_(pl) and ω_(po) are real numbers greater thanor equal to 0, and ω_(pl) is greater than ω_(po); the weighted averageof the reconstructed attribute values of the coplanar and collinearpoints is used as the attribute prediction value of the current point.9. The decoding method of point cloud attribute according to claim 5,wherein the weighted average of the reconstructed attribute values ofthe n reference points comprises: the point cloud is divided into Mpoint set levels P_(i), i=0, 1 . . . M, M is a natural number greaterthan 0; L points are determined in the point set level different fromthe point set level where the current point is located, wherein therange of Hilbert code of the L points is [H₁, H₂](H₁≤HCode≤H₂), n pointsclosest to the current point being selected as reference points in the Lpoints, and the HCode being the Hilbert code of the current point,wherein the distance-weighted average of the reconstructed attributevalues of the n reference points is used as the attribute predictionvalue of the current point.
 10. An encoding method of point cloudattribute, comprising: according to the three-dimensional geometriccoordinates of points, the corresponding Hilbert codes of these pointsare calculated, according to the Hilbert code values of these points,these points are reordered and then the points arranged in Hilbert orderare obtained, wherein the bits of the binary code of the Hilbert codecannot form a one-to-one correspondence with the bits of the binary codeof the geometric coordinates; the points arranged in Hilbert order arepredicted in order to obtain the attribute prediction value of eachpoint, and the attribute residual value of each point is obtained by thesubtraction between this attribute prediction value and the actualattribute value; the attribute residual value of each point is writteninto the bitstream in the Hilbert order.
 11. The encoding method ofpoint cloud attribute according to claim 10, wherein the calculation ofthe Hilbert code of the point according to the three-dimensionalgeometric coordinates of the point comprises: according to thethree-dimensional geometric coordinates of the point (X₁, X₂, X₃), whereX₁=(x₁ ¹x₁ ² . . . x₁ ^(n) . . . x₁ ^(N−1)x₁ ^(N)), X₂=(x₂ ¹x₂ ² . . .x₂ ^(n) . . . x₂ ^(N−1)x₂ ^(N)), X₃=(x₃ ¹x₃ ² . . . x₃ ^(n) . . . x₃^(N−1)x₃ ^(N)), where each x_(j) ^(i) is a binary bit, and N is thebit-depth of the geometric coordinates, wherein according to the orderof i=1, . . . n, . . . , N, that is, the order from high to low of thethree-dimensional geometric coordinates, the corresponding Hilbert codeC_(i) is generated according to binary bits (x₁ ^(i),x₂ ^(i),x₃ ^(i)) ofeach group and the state

_(i):C _(i)=

(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i)) among them,$S_{i} = \left\{ \begin{matrix}{{{take}{any}{of}{the}{values}{in}}{\left\lbrack {a,b,c,d,e,h,k,m,p,q,r,s} \right\rbrack,}} & {i = 1} \\{{g\left( {S_{i - 1},C_{i - 1}} \right)},} & {i \neq 1}\end{matrix} \right.$ all the sub-codes C_(n) of Hilbert code beingarranged in order as C₁C₂ . . . C_(N), to obtain the Hilbert codeHCode=C₁C₂ . . . C_(N) of the three-dimensional geometric coordinates(X₁, X₂, X₃), N being the bit-depth of the geometric coordinate.
 12. Adecoding device of point cloud attribute, comprising: a module ofsorting Hilbert code: input the three-dimensional geometric coordinatesof points, and calculate the corresponding Hilbert codes of thesepoints; reorder these points according to their Hilbert code values, andoutput the points arranged in Hilbert order, wherein the bits of thebinary code of the Hilbert code cannot form a one-to-one correspondencewith the bits of the binary code of the geometric coordinates; a moduleof decoding attribute residual: the attribute residual values of thepoints are obtained by decoding them from the bitstream; a module ofcorresponding attribute residual: the attribute residual value of eachpoint corresponds to its Hilbert code in the Hilbert order, and alsocorresponds to its three-dimensional geometric coordinates in theHilbert order.
 13. The decoding device of point cloud attributeaccording to claim 12, wherein the calculation of the Hilbert code ofthe point according to the three-dimensional geometric coordinates ofthe point comprises: a sub-code generation module: input thethree-dimensional geometric coordinates (X₁, X₂, X₃) of points, (X₁, X₂,X₃) where X₁=(x₁ ¹ x ₁ ² . . . x₁ ^(n) . . . x₁ ^(N−1)x₁ ^(N)), X₂=(x₂¹x₂ ² . . . x₂ ^(n) . . . x₂ ^(N−1)x₂ ^(N)), X₃=(x₃ ¹x₃ ² . . . x₃ ^(n). . . x₃ ^(N−1)x₃ ^(N)), where each x_(j) ^(i) is a binary bit, and N isthe bit-depth of the geometric coordinates, according to the order ofi=1, . . . n, . . . , N, that is, from high-bit to low-bit of thethree-dimensional geometric coordinates, output the correspondingHilbert code C_(i) by using binary bits (x₁ ^(i),x₂ ^(i),x₃ ^(i)) ofeach group and the state

_(i):C _(i)=

(x ₁ ^(i) ,x ₂ ^(i) ,x ₃ ^(i)) a state transition module:$S_{i} = \left\{ \begin{matrix}{{{take}{any}{of}{the}{values}{in}}{\left\lbrack {a,b,c,d,e,h,k,m,p,q,r,s} \right\rbrack,}} & {i = 1} \\{{g\left( {S_{i - 1},C_{i - 1}} \right)},} & {i \neq 1}\end{matrix} \right.$ a Hilbert code generation module: arrange all thesub-codes C_(n) of Hilbert code in order as C₁C₂ . . . C_(N), to obtainthe Hilbert code HCode=C₁C₂ . . . C_(N) of the three-dimensionalgeometric coordinates (X₁, X₂, X₃), N is the bit-depth of the geometriccoordinate.